https://blog.xuite.net/jamesbob/blog/483100740
Regsvr32 命令語法
RegSvr32.exe 具有下列命令列選項:
Regsvr32 [/u] [/n] [/i[:cmdline]] <dllname>
/u - 取消登錄伺服器
/i - 當 DllInstall 與 /u 搭配使用呼叫 DLL 解除安裝時,
呼叫 DllInstall 會將其傳送為選擇性 [cmdline]
/n - 不會呼叫 DllRegisterServer,此選項必須與 /i 搭配使用
/s – 無訊息;不顯示任何訊息方塊
注意 在 64 位元版本的 Windows 作業系統上,有兩種版本的 Regsv32.exe 檔案:
64 位元版本的是 %systemroot%\System32\regsvr32.exe;
32 位元版本的是 %systemroot%\SysWoW64\regsvr32.exe。
------
使用 32 位元版本的 Regsvr32,在 64 位元版本的 Windows 上登錄 32 位元 DLL
如果您在 64 位元版本的 Windows 上登錄 32 位元 DLL 時發生錯誤,請依照下列步驟執行:
請開啟提高權限的命令提示字元。
如果 32 位元 DLL 位於 %systemroot%\System32 資料夾,請將其移至 %systemroot%\SysWoW64 資料夾。
執行下列命令:
%systemroot%\SysWoW64\regsvr32 <DLL 的完整路徑>
************
結論:
重新登錄 .DLL 或 .OCX 的方法,
建議先以 .OCX 為主。
指令:
32位元版本OS重新登錄.DLL
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
32位元版本OS重新登錄.OCX
for %1 in (%windir%\system32\*.ocx) do regsvr32.exe /s %1
64 位元版本OS重新登錄 .DLL
也是 64 位元版本OS登錄 32 位元 .DLL 檔時,
若發生錯誤時的解法之一,
記得把 .DLL 檔從system32移到syswow64
for %1 in (%windir%\syswow64\*.dll) do regsvr32.exe /s %1
64位元版本OS重新登錄.OCX
記得把 .OCX 檔從system32移到syswow64
for %1 in (%windir%\syswow64\*.ocx) do regsvr32.exe /s %1
PS:
/s 可以用 /n /i 取代試看看,
可比較某些程式會不會出現…DllRegisterServer…錯誤之類的