您的位置 首页 > 驱动程序

win2000修改注册表注册ocx_windows修改注册表要重启吗

1.不能注册DLL/OCX:DLLRegisterServer 失败;代码0x80004005未指定错误

2.ocx控件未能正常运行怎么解决

3.REGSVR32 MSCOMM32.OCX翻译成注册表信息

4.详解两种C#自动实现DLL(OCX)控件注册的方法

5.mscomctl.ocx 加载失败!system32中有这个文件,也可以注册成功,但运行vb时 还是提示不能加载!

6.用网上的方法修改了注册表,但还是无法打开chm文件,怎么办?a

win2000修改注册表注册ocx_windows修改注册表要重启吗

regsvr32 /i Mscomm32.ocx

------------

一、regsvr32的用法为:

“regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。

参数有如下意义:

/u——反注册控件

/s——不管注册成功与否,均不显示提示框

/c——控制台输出

/i——跳过控件的选项进行安装(与注册不同)

/n——不注册控件,此选项必须与/i选项一起使用

执行该命令的方法:

1、可以在“开始”--“运行”,调出运行的对话框,也可以使用Win+R热键,然后直接在输入栏输入即可

2、在开始--运行 输入cmd,调出‘命令提示符’窗口,然后再执行regsvr32命令。

不能注册DLL/OCX:DLLRegisterServer 失败;代码0x80004005未指定错误

VB中合理地利用控件能极大地提高程序开发的效率,但是许多人常遇到因控件未注册而无法使用的问题。下面就介绍几种注册控件的方法(设待注册控件的文件名为MyCtrl.ocx)。

1.在VB5环境中直接注册

在VB5集成开发环境中,选择“工程/部件”菜单,弹出“部件”对话框。在“控件”页中包含有系统中所有已注册控件的列表,为了注册MyCtrl.ocx,可点击列表框旁边的“浏览”按钮,并在“添加ActiveX 控件”对话框中选中MyCtrl.ocx文件,按“确定”即可。这种方法的优点是注册完的控件可以直接加入到当前的工程中试用。但是有些拥有版权的控件不能用该方法直接注册。

2.利用REGSVR32工具注册

在VB5.0安装盘的Tools\Regutils目录下有三个用于注册OLE控件和DLL的工具,即REGSVR32.EXE、 REGOCX32.EXE和REGIT.EXE。

REGSVR32.EXE用于注册OLE Server,包括OLE控件和DLL;REGOCX32.EXE专用于注册OCX控件;REGIT.EXE用于一次注册多个OLE Server。以REGSVR32.EXE为例,为注册MyCtrl ocx,只须在命令行输入REGSVR32 MyCtrl.ocx即可。而输入REGSVR32 /u MyCtrl.ocx则可以注销该控件。与方法1类似,有些控件不能直接用该法注册。

3.直接在注册表中进行注册

事实上,在Windows系统中对控件的注册,就是在系统注册表的主键HKEY_CLASSES_ROOT下添加相应控件类的信息,如类的ID和版权信息等。这些信息是由系统维护的,用户通常无法直接修改。不过,不少控件的安装程序能通过自动修改注册表进行注册。还有一些控件的安装盘中提供了手工修改注册表的方法。例如,升级到VB5之后,VB4中的几个常用的控件,如Threed32.ocx、MSOutl32.ocx等都无法在开发环境中正常使用。其实,在VB5安装盘的Tools\Controls目录下有一个Vbctrls.reg的注册文件,双击该文件后就可以将版权信息添加到注册表中,从而实现控件的注册

ocx控件未能正常运行怎么解决

1、安装文件不完整,或是已经损坏。

解决方法:从新找一张盘试试或在用在局域网上另一台机子上掉

2、你看看是不是需要注册码之类的,或许是注册码的问题

3、机子系统不兼容,或是有,解决方法我就不说了,实在不行,你把硬盘格式化后,从装系统。

REGSVR32 MSCOMM32.OCX翻译成注册表信息

首先,你要确认你要加载的控件已经成功的注册了,如果没有注册,请按照以下方式注册

注册成功之后,如果界面依然没有加载控件,则考虑注册表的影响了

将ocx文件拷贝到SysWOW64目录下

运行注册命令,将OCX控件注册

其次,看看于控件相关的注册表是否导入到了正确的位置,尤其是64位操作系统,而注册表文件又是从32位系统导出的,更应该注意,这个时间可以眉头松开了,因为原因就可能出在这个地方 ,按照下图的方式更改之后,运行注册表文件就可以了,再次运行如果依然没有显示控件,依然是一个小小的红色叉号,别着忙,继续看

打开注册表

找到此文件夹,准备将注册表导入到此文件夹下面

32位默认路径

加入64位位置,点击保存,双击运行,成功将注册表文件导入!!!

其次,这个时间你可以考虑是不是浏览器设置的问题了,换一个浏览器试试,看看是否能够加载出来,你会惊奇的发现竟然显示了,这个时间你可以放心的告诉自己,控件终于注册成功了,再回过头来想,为什么第一个浏览器不显示空间呢?请移眼到下面

最后打开浏览器按照如下图进行设置

详解两种C#自动实现DLL(OCX)控件注册的方法

就是“注册 MSCOMM32.OCX控件”

注册表信息应该是 HKEY_CLASSES_ROOT 分支下的某个子项。

文件在Windows/System32

VB6在菜单栏工程(P)下拉菜单中选部件(O),在其属性页中找MICROSOFT COMM CONTROL6.0,对选钩方框打钩,就能在工具箱中出现电话机样的MSCOMM控件.如果上法找不到MICROSOFT COMM CONTROL6.0,则需从其它相同系统的System或System32目录夹将MSCOMM32.OCX复制到你机器系统的相同目录夹内,然后按文件下拉菜单中选部件(O),由浏览(B)去选中MSCOMM32.OCX文件,它就在部件(O)属性页中可找到,然后按前法操作,工具箱中就会有MSCOMM控件了.

mscomctl.ocx 加载失败!system32中有这个文件,也可以注册成功,但运行vb时 还是提示不能加载!

 本文将为大家讲述DLL库自动注册的两种方法 包括调用Regsvr 方法等 希望通过本文能对大家有所帮助

 尽管MS为我们提供了丰富的 NET Framework库 我们的程序C#开发带来了极大的便利 但是有时候 一些特定功能的控件库还是需要由第三方提供或是自己编写 当需要用到Dll引用的时候 我们通常会通过 添加引用 的方式将它们纳入到项目中 然后就可以像使用自己的类一样方便的使用它们了 但是 有些Dll库(OCX)文件是需要注册到Windows注册表后才能正常添加和使用的 本文介绍两种为Dll库(OCX)自动注册的方法 为大家提供参考

 首先 大家都知道在Windows的 运行 中 输入 Regsvr exe 路径 这样的方法来手动注册Dll控件(OCX) 显示这种方法对于程序的自动化部署等带来极大的不便 因此 今天我们着重介绍如何用C#实现自动注册

  方法一 调用Regsvr 法

 既然可以在运行栏中输入 Regsvr exe 路径 的方法来注册 那么 一定可以在C#程序中用同样的方法来调用Regsvr 以实现注册

 Process p = new Process();

 p StartInfo FileName = Regsvr exe ;

 p StartInfo Arguments = /s C:\\DllTest dll ;

 //路径中不能有空格? p Start(); 用这种方法 注意要添加对命名空间System Diagnostics的引用

 using System Diagnostics; 另外 这种方法有一个不足之处 那就是注册工作是在本程序之外由Regsvr exe程序来完成的 系统内不方便知道注册的结果 也不方便对注册过程弹出的对话框进行自定义和控制 这里附Regsvr 的参数说明 (感谢网友伍华聪的提醒)

 regsvr exe是 位系统下使用的DLL注册和反注册工具 使用它必须通过命令行的方式使用 格式是

 regsvr [/u] [/s] [/n] [/i[:cmdline]] DLL文件名

 命令可以在 开始→运行 的文本框中 也可以事先在bat批处理文档中编写好命令 未带任何参数是注册DLL文件功能 其它参数对应功能如下

 /u 反注册DLL文件;

 /s 安静模式(Silent)执行命令 即在成功注册/反注册DLL文件前提下不显示结果提示框

 /c 控制端口;

 /i 在使用/u反注册时调用DllInstall;

 /n 不调用DllRegisterServer 必须与/i连用

  方法二 调用DllRegisterServer函数法

 既然方法一不大实用 那么我们就来寻找一种真正实用的方法来达到我们的目的吧 研究Regsvr exe和Dll文件 我们会发现 其实每个需要注册的文件都包括一个DllRegisterServer()方法 Regsvr exe就是通过调用该方法来完成Dll的注册的 呵呵 知道了这个 我们就可以自己调用DllRegisterServer()来完成注册过程啦

 首先 还得引入外部方法

 [DllImport( DllTest dll )]? public static extern int DllRegisterServer();//注册时用? [DllImport( DllTest dll )]? public static extern int DllUnregisterServer();//取消注册时用 接下来就不难啦

 int i = DllRegisterServer();? if (i >= )

 {

 //注册成功!

 }

 else

 {

 //注册失败} 取消注册的过程就不应再贴代码啦

 两种方法介绍完啦 可是好像还缺点什么?对了 那就是对Dll是否已经注册过了的判断 一般情况下 我们可以将对Dll控件的注册过程放在系统启动的过程中来完成 但是 总不能每次启动都注册一次吧?这样做显然不合理 那么 我们就来判断一下 当前Dll是否已经注册过 如果已注册过 就跳过注册过程

 每一个Dll的注册都会在注册表里记录下有关它本身的资料 如注册路径 唯一ID等 我们这里就是利用它留下的唯一ID号来判断

 RegistryKey rkTest = Registry ClassesRoot OpenSubKey( CLSID\\{ F A DE BA A F FB BD CA B}\\ );

 if (rkTest == null){

 //Dll没有注册 在这里调用DllRegisterServer()吧} 注意要添加对命名空间Microsoft Win 的引用

 using Microsoft Win ;

lishixinzhi/Article/program/net/201311/12168

用网上的方法修改了注册表,但还是无法打开chm文件,怎么办?a

试验了多种方法终于解决。 网上说的替换版本、重新VB,OFFICE都不能解决问题。后来我手动将注册表中MSCOMCTL.OCX的相应内容都删除点,再把MSCOMCTL.*都删除掉,重装一下VB SP6,然后将VBP文件中的“Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX”改为“Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX”,终于解决些问题。

在删除的注册表的过程中我发现831FDD16-0C5C-11D2-A9FC-0000F8754DA1 主键下有2.0 和2.1两个版本,这应该是引用问题的主因。由于没能重现问题,所无法确定是不是只要删除掉2.1那个版本就,然后修改下VBP中的版本号就能解决问题。有些问题的朋友可亲自验证一下。

再帮你提供一些解决办法,希望能帮到你。

://jingyan.baidu/article/a948d65145f6ad0a2dcd2eae.html

解决方法1:

1.在微软网站上下载hhupd.exe,安装hh.exe后并运行。

2.实际上,下载hhupd.exe后,运行后就可以了。这个东西大小为461kb

3.在c:\windows\system32里找到“Hhctrl.ocx”文件,然后运行:“regsvr32 c:\windows\system32\hhctrl.ocx...

(直接执行regsvr32 c:\windows\system32\hhctrl.ocx有时候应该也可以)

关于内存不能为读的问题,可能有如下原因:

1、打开的程序太多,如果同时打开的文档过多或者运行的程序过多,没有足够的内存运行其他程序,要随时关闭不用的程序和窗口。

2、自动运行的程序太多,关闭一些启动程序, 开始-运行-Msconfig---启动 ,除杀毒软件、输入法外一般的程序都可以关掉。

3、物理内存过小,加大物理内存;内存和主板没插好或其他硬件不兼容 重插内存或换个插槽 ;双内存不兼容 ,要使用同品牌的内存或只要一条内存 ;劣质内存条或内存条坏了 更换内存条;合理设置虚拟内存。

4、市电电压过大的波动,或者PC机上使用劣质电源,都会给内存带来损害,更换功率大、质量好的电源。

5、PC机箱内充满灰尘,或者PC工作环境相对潮湿,也会造成运行不正常。及时除尘。

6 、CPU、显卡散热问题 ,改善散热 。

7、硬盘有问题 ,扫描修复或更换硬盘 。

8 、驱动问题 重装更新驱动 。

9、非法操作,系统无法执行。

10、 软件损坏 重装软件 ;软件有BUG 打补丁或更新到最新版本 ; 软件和系统不兼容 给软件打上补丁或是试试系统的兼容模式 ; 软件和软件之间有冲突 如果最近安装了什么新软件,卸载了试试 。

11、 系统本身有问题 有时候操作系统本身也会有BUG,要注意安装官方发行的更新程序最好及时补上,必要时重装系统。

12、 问题 杀毒 ;杀毒软件与系统或软件相冲突 由于杀毒软件是进入底层监控系统的,可能与一些软件相冲突,卸载试试

13、试打开CMD窗口输入如下命令:

for %i in (%windir%\system32\*.dll) do regsvr32.exe /s %i 回车

for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车 重启。。

解决方法2:

1.右键关联chm文件的“打开方式”到\Windows\HH.exe;

2.在命令行运行regsvr32 itss.dll;

3.在命令行运行regsvr32 hhctrl.ocx。

CHM 意为 Compiled HTML。以CHM为扩展名的文件图标通常为一个带问号的文档图标,表示帮助文档,是 Microsoft 自 Windows 98 以来提供的一种帮助文档格式的文件,用于替代 Windows 95 下的 HLP(Help) 文件。Microsoft 自 Windows 98 以来,操作系统中都自带解释器(打开 CHM 文件的工具),即 Windows 安装目录下的 HH.EXE。CHM 文件可以通过官方免费提供了 HTML Help Workshop 生成,它的源文件是 HTML 文件。现在网络上很多电子书籍都被制作成 CHM 格式。

------------------------------------------------------------------

一.如果不能打开,可这样恢复文件关联:

1、开始运行,输入:regsvr32 C:\windows\system32\hhctrl.ocx ,确定,重新关联文件。

2、执行一下windows目录里的hh.exe 。

有时候chm文件放在中文目录就不行。包括中文chm名字。试着把文件考出来.中文名字一改.

二.1.在微软网站上下载hhupd.exe,安装hh.exe后并运行。

2.实际上,下载hhupd.exe后,运行后就可以了。这个东西大小为461kb 3.在c:\windows\system32里找到“Hhctrl.ocx”文件,然后运行:“regsvr32“c:\windows\system32\hhctrl.ocx...

网上的解决方法不可行,下载不了hhupd.exe.我直接执行regsvr32 c:\windows\system32\hhctrl.ocx就ok了。

解决方法2是:

1,右键关联chm文件的“打开方式”到\Windows\HH.exe

2,在命令行运行regsvr32 itss.dll

3,在命令行运行regsvr32 hhctrl.ocx

三.也许是 HH.EXE 所必需的某个组件出了问题。但是不知道 HH.EXE 会用到些什么组件,所以上网查了一下,有人建议重新注册 hhctrl.ocx。我在系统目录下找到了 hhctrl.ocx,重新注册一下 hhctrl.ocx 试试:regsvr32 hhctrl.ocx。依然不能正常阅读 CHM。

既然如此,很有可能是协议出了问题。HH.EXE 用的是 ms-its 等协议,这些协议应该是由某个 DLL 文件提供服务的。问题是,是什么 DLL 呢?于是再用 Google 搜索 ms-its 协议。终于找到了,原来是一个 itss.dll 在做服务。不过网上查到的解决方案是修改注册表。

要修改 ItssRestrictions 注册表项以启用特定的安全区域,请按照下列步骤操作:

1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。

2. 找到并单击下面的子项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions

注意:如果该注册表子项不存在,则使用方法 1 中的步骤 2a 和 2b 创建该子项。

3. 右键单击“ItssRestrictions”子项,指向“新建”,然后单击“DWORD 值”。

4. 键入 MaxAllowedZone,然后按 Enter 键。

5. 右键单击“MaxAllowedZone”值,然后单击“修改”。

6. 在“数值数据”框中,键入 0 至 4 之间的一个数字,然后单击“确定”。

7. 退出注册表编辑器。

注意:默认情况下,“MaxAllowedZone”值设置为 0。下表摘要列出了“MaxAllowedZone”值对各个项的解释。 MaxAllowedZone 本地计算机区域 本地 Intranet 区域 受信任的站点区域 Internet 区域 受限站点区域

0 允许 阻止 阻止 阻止 阻止

1 允许 允许 阻止 阻止 阻止

2 允许 允许 允许 阻止 阻止

3 允许 允许 允许 允许 阻止

4 允许 允许 允许 允许 允许

注册表修改之后还是不能打开!

试试偷懒的办法吧——重新注册DLL:regsvr32 itss.dll。

四.操作系统的语言不是中文(经常出现这种情况)

1.看看你的 OS 是不是中文的 OS ? 如果你的 OS 不是 中文的,那么到 Control Pane 中看看那个“语言和区域” 的option, 打开看看“区域选项” 是不是中国,这个选项对一些软件还是有一些影像的。

2.如果你的CHM文件是中文的,可能存在缺省语言设置问题。可能你用是的英文版的WINDOWS,把RIONAL AND LANGUE OPTIONS中的LANGUE 和ADVANCED 中的 语言和国家选项都设置成中文(PRC)。就可以了

五.可以试试改变此文件的名字.比如去掉多余的符号

六.如果都不能,最后一招就是,把电子书CHM格式转换为PDF文件:

CHM Converter是一个专门转换CHM格式的文件,它可以把CHM文件转换成PDF、TXT、DOC等常用的格式。

://dl.pconline.cn/html/1/6/dlid=11896&dltypeid=1&pn=0&.html

下载后运行软件,软件默认是英文界面,点击菜单“Tools-Language”,在弹出的对话框中选择“Chinese_Simplified”就可以换成中文了,软件还支持其他很多语言。

选好语言后点击左上角的“打开”按钮来选择要转换的CHM文件,如果CHM文件是英文版的,那么在旁边的下拉菜单中就选择 “DEFAILT_CHARSET”,如果是中文的,那需要在下拉菜单中选择“GB2312_CHARSET”,否则会产生乱码,然后在右面的“导出”中来选择要转换的文件类型,软件支持很多格式的文件,如这里选择“Word-2003”,最后点击“另存数据库为”按钮,选择保存的文件夹后就开始进行转换了。

PS: Window2K中不能打开*.chm文件的解决办法

这个问题的发生,是由于hhctrl.ocx的版本号出现错误或未正确注册。原因在于安装的其他软件用hhctrl.ocx的旧版本替换了原来的版本。

IE6SP1中,这个文件的版本号应为5.2.3735.0。可以看看你的系统这个文件的版本号。

位于winnt/system32这个文件夹。大小504K(英文版本)从其他相同的系统(IE版本也相同)中COPY一份

粘贴到你的系统相应文件夹中。然后注册一下。

注意:

1、先替换winnt/system32/dllcache文件夹的这个文件

后替换winnt/system32文件夹里的这个文件

2、如果看不到这个文件,

先工具--文件夹选项中,设置显示隐藏文件

并设置显示系统文件

3、注册的方法是

开始--运行,输入regsvr32 hhctrl.ocx

之后出来一个注册成功的对话框,确定然后重启系统。

----------------------------------------------------------------------------

前几天想打开一本 CHM 格式的电子书,查点东西,没想到,打开的窗口里竟然提示不能打开页面。因为一直很少用帮助,所以也不知道是什么时候开始出现了这个问题的。因为没时间去考虑,所以先在网上查了资料,把这个问题放下了。

今天又一次打开某 CHM 文档的时候,发生了同样的问题。这次有时间。试了一下,几乎所有 CHM 文件都打不开了。看样子是打开过程(指的是系统中的操作过程,非人为操作过程)中的某个关键步骤出了问题。

CHM 的实质是通过几个特殊的协议访问压缩存在在 CHM 文件中的网页。所以,我估计可能是防火墙有鬼。于是把防火墙统统仔细检查了一遍,没有限制 CHM 文件打读取。关闭所有防火墙,CHM 仍然不能正常阅读。

也许是 HH.EXE 所必需的某个组件出了问题。但是不知道 HH.EXE 会用到些什么组件,所以上网查了一下,有人建议重新注册 hhctrl.dll。我在系统目录下找到了 hhctrl.ocx,没有找到 hhctrl.dll。就当是网上写错了,重新注册一下 hhctrl.ocx 试试:regsvr32 hhctrl.ocx。依然不能正常阅读 CHM。

既然如此,很有可能是协议出了问题。HH.EXE 用的是 ms-its 等协议,这些协议应该是由某个 DLL 文件提供服务的。问题是,是什么 DLL 呢?于是再用 Google 搜索 ms-its 协议。终于找到了,原来是一个 itss.dll 在做服务。不过网上查到的解决方案是修改注册表。看着那一堆注册表项就头痛,还是先试试偷懒的办法吧——重新注册DLL:regsvr32 itss.dll。

再试,嘿,好了,CHM 又可以正常打开了。

热门文章