regsvr32(Register Server)是Microsoft Windows作業系統底下的指令,用來對COM檔和ActiveX檔做註冊及反註冊的動作,使之反應在登錄檔中。但搭配 regsvr32.exe 使用的 DLL,或者提供 DllRegisterServerDllUnregisterServer 兩個输出函式,或者提供DllInstall输出函数(可接受命令行参数)。

使用方式

 regsvr32 foo.dll:註冊 foo.dll
 regsvr32 /u foo.dll:反註冊  foo.dll
 regsvr32 /i:"my_cmd_string" dllname.dll:註冊dllname.dll 
 regsvr32 /u /i:"my_cmd_string" dllname.dll:反註冊 dllname.dll

参数说明

Regsvr32 [/u] [/n] [/i[:cmdline]] dllname

/u – 反註冊

/i – 调用DllInstall带有可选参数[cmdline],第一个参数值为TRUE;当和/u一起使用时调用DllInstall,带有可选参数[cmdline],第一个参数值为FALSE.

/n – 不调用DllRegisterServer或DllUnregisterServer;该参数必须和/i一起使用; 如果没有/n,则/i在调用DllInstall时还调用了DllRegisterServer或DllUnregisterServer

/s – 静默模式;不显示对话框(Windows XP和Windows Vista中新增选项)

但要注意,如果目前目錄和預設系統目錄(C:\windows, C:\windows\system32)都有名為 foo.dll 的檔案,那麼,regsvr32 只會用系統目錄下的檔案,而不會用目前目錄下的檔案。解決辦法是加上全路徑,例如 c:\temp\foo.dll;或是使用底下語法:

 regsvr32 .\foo.dll

參閱