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控件,要确保以下步骤:
1.用管理员身份运行cmd;
2.cd到控件所在路径;
3.键入
%systemroot%\SysWoW64\regsvr32.exe xxx.ocx
并回车;
为了能使32位的控件在32位操作系统与64位操作系统下都能正确自动注册,可采用批处理命令方式,在命令中自动判断操作系统是32位还是64位,并针对性调用不同的注册命令即可。具体方法如下:
在控件所在路径下创建一个txt,重命名为reg.bat文件。
键入以下命令并保存,注意修改为自己的控件文件名:
1 | reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT |
使用管理员身份运行reg.bat即可。
参考:
http://stackoverflow.com/questions/12322308/batch-file-to-check-64bit-or-32bit-os/19804271#19804271