1. 程式人生 > >Regsvr32 在64位機器上的用法

Regsvr32 在64位機器上的用法

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位,並針對性呼叫不同的註冊命令即可。具體方法如下:

  1. 在控制元件所在路徑下建立一個txt,重新命名為reg.bat檔案。
  2. 鍵入以下命令並儲存,注意修改為自己的控制元件檔名:
    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"
  3. 使用管理員身份執行reg.bat即可。

參考: