Regsvr32 在64位机器上的用法(转载)

转载: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控件,要确保以下步骤:

  1. 用管理员身份运行cmd;
  2. cd到控件所在路径;
  3. 键入“%systemroot%SysWoW64 egsvr32.exe xxx.ocx"并回车;


为了能使32位的控件在32位操作系统与64位操作系统下都能正确自动注册,可采用批处理命令方式,在命令中自动判断操作系统是32位还是64位,并针对性调用不同的注册命令即可。具体方法如下:

  1. 在控件所在路径下创建一个txt,重命名为reg.bat文件。
  2. 键入以下命令并保存,注意修改为自己的控件文件名:
    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"
  3. 使用管理员身份运行reg.bat即可。
原文地址:https://www.cnblogs.com/chechen/p/7851579.html