2012年6月23日 星期六

regsvr32 注冊.dll的用法


這里有很多Regsvr32命令,看了後就明白了Regsvr32命令修復系統故障實例使用過activex的人都知道,activex不注冊是不能夠被系統識別和使用的,一般安裝程序都會自動地把它所使用的activex控制項注冊,但如果你拿到的一個控制項需要手動注冊怎么辦呢?如果修改注冊表那就太麻煩了,在windows的system文件夾下有一個regsvr32.exe的程序,它就是windows自帶的activex注冊和反注冊工具。

2000系統的regsvr32.exe在winnt\system32文件夾下;
WInXP系統的regsvr32.exe在windows\system32文件夾下

regsvr32的用法為:
" regsvr32 [/s] [/n] [/u] 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 就會生成該錯誤消息。

例 如,鍵入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 庫函數並在關閉時撤消對該庫的初始化。
Regsvr 32命令是Windows中控制項文件(如擴展名為DLL、OCX、CPL的文件)的注冊和反注冊工具。  命令格式   

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

/u 卸載安裝的控制項,卸載伺服器注冊;   

/s 注冊成功後不顯示操作成功信息框;   

/i 調用DllInstall函數並把可選參數[cmdline]傳給它,當使用/u時用來卸載DLL;  

/n 不調用DllRegisterServer,該參數必須和/i一起使用。   



簡單實例   

要手工注冊“E:\\CPCW.dll”,只需在“開始→運行”中鍵入“Regsvr32 E:\\CPCW.dll”,單擊“確定”按鈕後會彈出提示信息“DllRegisterServer in CPCW.dll succeeded”,說明組件注冊成功;如果要卸載此組件,在“開始→運行”中鍵入“Regsvr32 /u E:\\CPCW.dll”即可。

格式:regsvr32 [/s] [/n] [/i[:cmdline]] DLLname

使用參數--------解除伺服器注冊

使用參數[/s]--------無聲;不顯示消息框

使用參數---------調用DllInstall,給其傳遞一個可選[cmdline];跟/u參數一起使用時卸載DLL。

使用參數[/n]--------不用調用DLLRegisterServer。這個參數必須跟/i一起使用。

實例1:IE無法打開新窗口

regsvr32 actxprxy.dll

regsvr32 shdocvw.dll

重啟後如果還不能解決

regsvr32 mshtml.dll

regsvr32 urlmon.dll

regsvr32 msjava.dll

regsvr32 browseui.dll

regsvr32 oleaut32.dll

regsvr32 shell32.dll



實例2:IE無法保存HTML格式文件

regsvr32 inetcomm.dll



實例3:MSN無法登陸

regsvr32 softpub.dll



實例4:windows默認的文件關聯混亂

regsvr32 /i shdocvw.dll

regsvr32 /i shell.dll

regsvr32 /i shdoc401.dll



實例5:Window server 2003中無法播放MP3

regsvr32 i3codeca.acm

regsvr32 i3codecx.ax



實例6:Windows添加/刪除程序無法啟動

regsvr32 mshtml.dll

regsvr32 /i shdocvw.dll

regsvr32 /i shell.dll



實例7 Windows搜索功能故障

regsvr32 urlmon.dll



實例8:禁止系統對媒體文件進行預覽

regsvr32 /u shmedia.dll 恢復可用 regsvr32 shmedia.dll



實例9:卸載Win XP自帶的zip功能

regsvr32 /u zipfldr.dll



實例10:禁用FSO對象

regsvr32 /u scrrun.dll



實例11:用戶帳戶打開後看不到里面的內容

regsvr32 nusrmgr.cpl 是用戶賬戶的運行文件
regsvr32 mshtml.dll 是HTML解釋器相關模塊
regsvr32 jscript.dll 是Microsoft javascript腳本支持相關文件
regsvr32 /i shdocvw.dll 是為Windows應用程序添加基礎文件和網路操作相關模塊

用戶帳戶打開空白一般可能模塊會出現問題,有的會出現比如模塊找不到等



管理員無法打開或設置用戶權限解決方法:
執行:regsvr32 uscript.dll
regsvr32 mshtml.dll




切換用戶出現警示提示,“高級INF安裝程序”
“錯誤:無法定位INF文件C:\WINDOWS\INF\icw.inf

regsvr32 MSHTML.DLL
大家注冊DLL或OCX的方法應該用Regsvr32.exe,用得多了大家一定會覺得在運行中寫一長串東西很是煩人吧?!這里我向大家介紹一種麻煩一次方便"一生"的方法。這個方法只要右擊你想注冊或反注冊的OCX或DLL就可以了。它的原理是通過修改注冊表使右擊OCX或DLL文件時出現注冊和反注冊的菜單項。

下面介紹這個方法
注冊DLL文件:打開HKEY_CLASSES_ROOR\Dllfile,新建項shell,再其下新建Register,你會發現Register就是右鍵彈出的菜單名,再在其下建command,修改其"默認值"為Regsvr32 %1
反注冊DLL文件:打開HKEY_CLASSES_ROOR\Dllfile,新建項shell,再其下新建Unregister,再在其下建command,修改其"默認值"為Regsvr32 %1 /u

注冊和反注冊OCX文件打開HKEY_CLASSES_ROOR\OCXfile,然後其它的方法和上面的一樣的了。


右擊一個OCX或DLL試試看,呵呵,Yes!出現了我們想要的Register和Unregister菜單項。

Activex注冊和反注冊工具——Regsvr32

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

regsver32詳解

“regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。其中dllname為activex控制項文件名,建議在安裝前拷貝到system文件夾下。

參數有如下意義:

/u——反注冊控制項

/s——不管注冊成功與否,均不顯示提示框

/c——控制台輸出

/i——跳過控制項的選項進行安裝(與注冊不同)

/n——不注冊控制項,此選項必須與/i選項一起使用

如筆者要注冊一amovie.ocx控制項,則打入regsvr32 amovie.ocx即可,要反注冊它時只需使用regsvr32 /u amovie.ocx就行了。


regsvr32 /s APIINEX.dll 注冊DLL文件
regsvr32 /s /u APIINEX.dll 卸載DLL文件
regsvr32 Shortcut.ocx 注冊ocx文件
regsvr32 /u Shortcut.ocx 卸載ocx文件

/s .dll,.ocx 注冊成功後不顯示提示信息。
/u .dll,.ocx 卸載

可把注冊控制項的命令放入批處理文件中。
regedit /s adofre15.reg
直接把注冊信息注入注冊表。

VB中如何用代碼來實現控制項的注冊

---------------------------------------------------------------

shell "regsvr32 """ & path & "\yourocxname.ocx"""
加/s不彈出對話框

沒有留言:

張貼留言