如何安装ocx控件

如何安装ocx控件,第1张

安装OCX控件的具体步骤如下:

我们需要准备的材料分别是:电脑、

以32位的电脑为例:

1、首先我们打开电脑,点击打开左下角的开始图标。

2、然后我们在d出来的窗口中点击打开“运行”。

3、然后我们在d出来的窗口中点击输入下图中的内容,回车确定即可。

  public static class RegisterOcx

    {

        private static string _systemDic = string.Empty

        /// 检测是32bit or 64bit,进行对应位置注册

        /// 注册成功之后启动Pad

        public static void RegisterOcxControl()

        {

            try

            {

                const string fileName = "dsoframer.ocx"

                bool type = Environment.Is64BitOperatingSystem

                 _systemDic = Environment.SystemDirectory

                if (type)

                {

                    //64bit

                    _systemDic = _systemDic.Replace("system32", "SysWOW64")

                }

                _systemDic = _systemDic + "\\" + fileName

                //是否存在

                if (!File.Exists(_systemDic))

                {

                    string libPath = AppDomain.CurrentDomain.BaseDirectory + "\\Libs\\" + fileName

                    File.Copy(libPath, _systemDic, true)

             

                }

                System.Threading.Thread thread = new System.Threading.Thread(DoRegistry)

                thread.SetApartmentState(System.Threading.ApartmentState.STA)

                thread.Start()

                

            }

            catch (Exception ex)

            {

                Logger.Error("RegisterOcxControl error" + ex.ToString())

                throw

            }

        }

 

        private static void DoRegistry()

        {

            try

            {

                //是否注册

                //{00460182-9E5E-11d5-B7C8-B8269041DD57}对应的是空间的注册表中ClSID的值,每一个OCX空间CLSID都不一样。

                //如果更换空间,则该值需要到注册表中查找,路径为:HKEY_CLASSES_ROOT\CLSID\{00460182-9E5E-11d5-B7C8-B8269041DD57}

                RegistryKey registry = Registry.ClassesRoot.OpenSubKey("CLSID\\{00460182-9E5E-11d5-B7C8-B8269041DD57}\\")

                if (registry == null)

                {//没有注册时

                    new Command().Execute(string.Format(@"Regsvr32.exe {0}", _systemDic))

                }

            }

            catch (Exception)

            {

                new Command().Execute(string.Format(@"Regsvr32.exe {0}", _systemDic))

            }

        }

    }

32bit 和 64bit的差别是 注册路径"system32"替换成 "SysWOW64"。

new Command().Execute是执行cmd命令,用其他的方式执行cmd都可以

命令是:Regsvr32.exe {0}   ,{0} 是注册的路径。

例如:

Regsvr32.exe "C:\Windows\SysWOW64\dsoframer.ocx" 

regsvr32 好像有个\s命令,可以静默注册。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11708385.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存