DLL(OCX)檔案註冊與反註冊方法(regsvr32用法)

來源:互聯網
上載者:User

註冊DLL與反註冊DLL檔案的方法 

如果經常需要註冊與反註冊dll可以用註冊表檔案 

複製代碼

代碼如下:

[HKEY_CLASSES_ROOT\dllfile\shell\Unregister] 
"Command"="regsvr32 %1 /u" 
[HKEY_CLASSES_ROOT\dllfile\shell\Register] 
"Command"="regsvr32 %1" 


當我們需要註冊或者反註冊dll時,只要在該dll檔案上按下滑鼠右鍵即可! 

由於下面的方法太過囉嗦,這裡簡單的說下,註冊dll

一般情況下,為了經常使用,建議將dll複製到系統硬碟的windows/system32目錄,如果不是的,有時候需要加上dll的完整路徑
註冊dll 

複製代碼

代碼如下:

regsvr32 /s winshow.dll 


反註冊dll 

複製代碼

代碼如下:

regsvr32 /u winshow.dll 

ocx 控制項註冊方法 

ocx 控制項的安裝方式有很多種,這裡介紹最簡單的一種。 
OCX 控制項檔案複製到某個目錄 

步驟: 

1.將需要安裝的目錄,例如 C 盤根目錄下。 
2.進入開始菜單,點擊“運行” 
3.在出現的框中鍵入regsvr32 C:/xxxx.ocx 。(XXXX 為 控制項名,C:/為目錄) 
4.點擊確認後等待出現提醒註冊成功即可。 

如果是偶爾一個軟體使用,將這個ocx檔案複製到軟體目錄即可。

反註冊DLL大法 
UnRegister DLLs 
You can use the Regsvr32 tool (Regsvr32.exe) to register and unregister object linking and 
embedding (OLE) controls such as dynamic-link library (DLL) or ActiveX Controls (OCX) files 
that are self-registerable. 

RegSvr32.exe has the following command-line options: 
Regsvr32 [/n] [/i[:cmdline]] dllname 
/u - Unregister server 
/i - Call DllInstall passing it an optional [cmdline]; when used with /u calls dll 
uninstall 
/n - do not call DllRegisterServer; this option must be used with /i 
When you use Regsvr32.exe, it attempts to load the component and call its DLLSelfRegister 
function. If this attempt is successful, Regsvr32.exe displays a dialog indicating success. 
If the attempt is unsuccessful, Regsvr32.exe returns an error message, which may include a 
Win32 error code. 
Example: To unregister Winshow's winshow.dll: 
Click the Start button, and select Run 
Enter this command line: 
regsvr32 /u [systemroot]\winshow.dll 
For example, in a Windows XP machine in which your systemroot was at c:\winnt, you would
enter: 
regsvr32 /u c:\winnt\winshow.dll 
你能構使用Regsvr32工具Regsvr32.exe註冊和反註冊目標連結和深層OLE控制器類似於自動註冊的動態連結程式庫(DLL)和ActiveX控制項。 
(OCX)檔案。 
Regsvr32命令列參數: 
格式:Regsvr32 [/n] [/i[:cmdline命令列]] dllnamedll檔案名稱 
/u - Unregister server反註冊服務 
/i - Call DllInstall passing it an optional [cmdline]; when used with /u calls dll 
uninstall 
/i 通過此DLL的選擇性參數,調用DLL安裝,反安裝使用/u 
/n - do not call DllRegisterServer; this option must be used with /i 
不調用DLL註冊服務,此選項必須和/i一起使用 
當你使用Regsvr32.exe,它會嘗試載入DLL內組件並且調用本身的自註冊功能。如果嘗試成功,Regsvr32.exe顯示一個成功提示框,如果嘗試失敗,Regsvr32.exe會返回一個錯誤訊息,一般會包含Win32錯誤碼(特徵碼)。 

例如 

反註冊Windows的windows.dll檔案 

1、點擊[開始] 按鈕,選擇“運行” 
2、輸入如下的命令列: 
regsvr32 /u [systemroot系統目錄]\winshow.dll 
註:卸載DLL時,目錄為此DLL檔案所在完整的最後開啟的目錄 

如:在系統目錄是c:\winnt的Windows XP作業系統中,你可以輸入如下命令列: 
regsvr32 /u c:\winnt\winshow.dll 
注意:一般來說,只有在無法刪除某些註冊過的DLL檔案時,才使用Regsvr32.exe反註冊此DLL 

使用過activex的人都知道,activex不註冊是不能夠被系統識別和使用的,一般安裝程式都會自動地把它所使用的activex控制項註冊,但如果你拿到的一個控制項需要手動註冊怎麼辦呢?如果修改註冊表那就太麻煩了,在windows的system檔案夾下有一個regsvr32.exe的程式,它就是windows內建的activex註冊和反註冊工具。 

一、regsvr32的用法為: 

“regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。其中dllname為activex控制項檔案名稱,建議在安裝前拷貝到system檔案夾下。 
參數有如下意義: 
/u——反註冊控制項 
/s——不管註冊成功與否,均不顯示提示框 
/c——控制台輸出 
/i——跳過控制項的選項進行安裝(與註冊不同) 
/n——不註冊控制項,此選項必須與/i選項一起使用 
執行該命令的方法: 
1、可以在“開始”--“運行”,調出啟動並執行對話方塊,也可以使用Win+R熱鍵,然後直接在輸入欄輸入即可 
2、在開始--運行 輸入cmd,調出‘命令提示字元’視窗,然後再執行regsvr32命令。 

二、Regsvr32錯誤訊息的說明 

當使用 Regsvr32.exe 時,它會嘗試載入該組件並調用它的 DLLSelfRegister 函數。如果此嘗試成功,Regsvr32.exe 會顯示一個指示成功的對話方塊。如果此嘗試失敗,Regsvr32.exe 會返回一條錯誤訊息,其中可能會包括一個 Win32 錯誤碼。 
以下列表介紹了 RegSvr32 錯誤訊息和可能的原因。 
Unrecognized flag:/invalid_flag 
鍵入的標誌或開關組合無效(請參閱本文中的“Regsvr32.exe 的用法”一節)。 
No DLL name specified. 
未包括 .DLL 檔案名(請參閱本文中的“Regsvr32.exe 的用法”一節)。 
Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found. 
Dllname 不是 .dll 或 .ocx 檔案。例如,鍵入 regsvr32 wjview.exe 就會產生該錯誤訊息。 
Dllname is not an executable file and no registration helper is registered for this file type. 
Dllname 不是可執行檔(.exe、.dll 或 .ocx)。例如,鍵入 regsvr32 autoexec.bat 就會產生該錯誤訊息。 
Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found. 
Dllname 可能未匯出,或者記憶體中可能有損壞的 Dllname 版本。請考慮使用 Pview 來檢測該檔案並刪除它。 
Dllname is not self-registerable or a corrupted version is in memory. 
例如,鍵入 regsvr32 icwdial.dll 後就會返回該錯誤訊息,因為 Icwdial.DLL 檔案不能自行註冊。 
如果您懷疑記憶體中有損壞的 Dllname 版本,請嘗試重新啟動電腦,或重新提取該檔案的原始版本。 
如果您啟動並執行是 Windows NT,可能需要使用 Microsoft Windows NT Server 4.0 資源工具包 中的 Kill 或 Pview 工具。有關其他資訊,請單擊以查看以下 Microsoft 知識庫文章: 197155 如何終止孤立進程 
OleInitialize failed (or OleUninitialize failed). 
Regsvr32 必須先初始化 COM 庫,然後才能調用所需的 COM 庫函數並在關閉時撤消對該庫的初始化。 
如果對 COM 庫進行初始化或撤消初始化的嘗試失敗,就會出現這些錯誤訊息。例如,Ole32.DLL 檔案 
可能已經損壞,或者其版本有誤。 
LoadLibrary("Dllname") failed.GetlastError returns 0x00000485 
在 Winerror.h 中,0x00000485 = 1157 (ERROR_DLL_NOT_FOUND),表示“找不到運行該應用程式所需的某個庫檔案”。例如,鍵入 regsvr32 missing.dll 後,如果找不到 Missing.DLL 檔案,就會返回該錯誤訊息。 
LoadLibrary("Dllname") failed.GetLastError returns 0x00000002 
在 Winerror.h 中,0x00000002 = 2 (ERROR_FILE_NOT_FOUND),表示“系統找不到指定的檔案”。換言之,系統找不到相關的 DLL。例如,如果鍵入 regsvr32 icwdial.dll,而此時缺少 Tapi32.dll(依賴項),就會返回該錯誤訊息。 
LoadLibrary("dskmaint.dll") failed.GetLastError returns 0x000001f 在 Winerror.h 中,0x000001f = 31 (ERROR_GEN_FAILURE),表示“附加到系統上的裝置不能正常工作”。如果您嘗試註冊 Win16 .DLL 檔案,就會發生此現象。例如,鍵入 regsvr32 dskmaint.dll 會返回該錯誤訊息。 
DllRegisterServer (or DllUnregisterServer)in Dllname failed.傳回碼是:字串 
在 Winerror.h 中搜尋字串。 
Regsvr32.exe 和依賴項 
RegSvr32.exe 依賴於 Kernel32.dll、User32.dll 和 Ole32.DLL 檔案(在 Windows NT 中,還依賴於 Msvcrt.dll 和 Advapi32.DLL 檔案)。Regsvr32.exe 會載入您嘗試註冊或撤消註冊的檔案及其所有依賴項。如果缺少必需的檔案或者它們已損壞,該進程可能會失敗。 
您可以使用 Depends.exe 來確定您嘗試註冊或撤消註冊的檔案的依賴項。在 Microsoft Windows 98 資源工具包 和 Microsoft Windows NT 4.0 資源工具包 支援工具中都提供了 Depends.exe。 
247024 Tools Included with the Microsoft Windows 98 Resource Kit 

三、一個快速註冊 DLL 及 OCX 的方法 

注意看羅!方法如下: 
1、在資源管理員中找到 C:\Windows\System\Regsvr32.exe 並【複製】 ( 按滑鼠右鍵選複製 ) 
2、將目錄移到 C:\Windows\SendTo 後,執行【貼上捷徑】 ( 按滑鼠右鍵選貼上捷徑 ) 
3、將捷徑名稱改成【REGISTER】 
4、OK 
現在,如果您想替某一個檔案做註冊動作,例如:C:\Windows\System\Test.ocx,您只要開啟資源管理員,找到 C:\Windows\System\Test.ocx,按滑鼠右鍵選【傳送到】【REGISTER】即可完成註冊動作了! 
註:有一個地方要注意的是,Regsvr32.exe 只能註冊 32 位的檔案!如果要用它來註冊 16 位的檔案,會有錯誤訊息產生。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.