转载:http://blog.csdn.net/xuzhimin1991/article/details/65436864
regsvr32是windows上注册 OLE 控件(DLL 或 ActiveX )的常用命令。注册 OLE 控件可更新 Windows 注册表中文件的位置和功能,从而使程序正常运行。32位系统注册32位控件,64位系统注册64位控件,一般都没有问题。一般容易出问题的是在64位操作系统上注册32位控件。
注意:64 位版本的 Windows 操作系统上有两个版本的 Regsv32.exe 文件。
- 64 位版本是 %systemroot%System32 egsvr32.exe。
- 32 位版本是 %systemroot%SysWoW64 egsvr32.exe。
你并没有看错,我并没有说反。SysWoW64中的“WoW”正是“Windows on
Windows”的缩写,表示一个运行在64位操作系统环境下的32位子系统。因此要在64位操作系统上正确注册一个32位的OLE控件,要确保以下步骤:
- 用管理员身份运行cmd;
- cd到控件所在路径;
- 键入“%systemroot%SysWoW64 egsvr32.exe xxx.ocx"并回车;
为了能使32位的控件在32位操作系统与64位操作系统下都能正确自动注册,可采用批处理命令方式,在命令中自动判断操作系统是32位还是64位,并针对性调用不同的注册命令即可。具体方法如下:
- 在控件所在路径下创建一个txt,重命名为reg.bat文件。
- 键入以下命令并保存,注意修改为自己的控件文件名:
reg Query "HKLMHardwareDescriptionSystemCentralProcessor " | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT if %OS%==32BIT %windir%system32 egsvr32.exe "%~dp0QfltOCX.ocx" if %OS%==64BIT %windir%syswow64 egsvr32.exe "%~dp0QfltOCX.ocx"
- 使用管理员身份运行reg.bat即可。