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