2014年7月17日 星期四

注册所有的 DLL文件和 OCX 文件

註冊所有的DLL檔和OCX  

     將您下載的 "*. DLL" 檔複製到 "C:\Windows\system32\" 系統目錄下然後按 "Win+R" 或按一下 "開始"->"運行" 輸入 "regsvr32 *.dll" 命令註冊到系統檔。適用於Windows95/98/xp/2000/vista/win7.

      比如我們要重新註冊shdocvw.dll這個檔的話,我們可以在開始功能表的運行中輸入regsvr32 shdocvw.dll這個命令來完成註冊。

如何註冊Windows\system32\下的所有.dll.ocx文件?

在開始->運行(win+r)下輸入命令:

cmd /c for %i in (%windir%\system32\*.dll) do regsvr32.exe /s %i
cmd /c for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i

cmd 裡面就只需要輸入:

for %i in (%windir%\system32\*.dll) do regsvr32.exe /s %i
for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i
===========================================================================

DLL(Dynamic Linkable Library 即動態連結程式庫檔),是一種不能單獨運行的檔,它允許程式共用執行特殊任務所必需的代碼和其他資源比較大的應用程式都由很多模組組成,這些模組分別完成相對獨立的功能,它們彼此協作來完成整個軟體系統的工作。可能存在一些模組的功能較為通用,在構造其它軟體系統時仍會被使用。在構造軟體系統時,如果將所有模組的原始程式碼都靜態編譯到整個應用程式 EXE 檔中,會產生一些問題:一個缺點是增加了應用程式的大小,它會佔用更多的磁碟空間,程式運行時也會消耗較大的記憶體空間,造成系統資源的浪費;另一個缺點是,在編寫大的 EXE 程式時,在每次修改重建時都必須調整編譯所有原始程式碼,增加了編譯過程的複雜性,也不利於階段性的單元測試。

  Windows 系統平臺上提供了一種完全不同的較有效的程式設計和運行環境,你可以將獨立的程式模組創建為較小的 DLL 檔,並可對它們單獨編譯和測試。在運行時,只有當 EXE 程式確實要調用這些 DLL 模組的情況下,系統才會將它們裝載到記憶體空間中。這種方式不僅減少了 EXE 檔的大小和對記憶體空間的需求,而且使這些 DLL 模組可以同時被多個應用程式使用。Windows 自己就將一些主要的系統功能以 DLL 模組的形式實現。
regsvr32註冊DLL

很多系統錯誤是因為DLL檔沒有註冊造成的。Regsvr32Windows中控制項檔(DLL檔即屬此類,此外還有OCXCPL等檔)的註冊和反註冊工具,利用它可以快速解決很多常見問題。

regsvr32的命令形式為:regsvr32 [參數] xxx.dll。對普通用戶最有用的參數是“/u”。要註冊某個DLL檔,就在開始→運行中輸入“regsvr32 xxx.dll”。而要反註冊它,則輸入“regsvr32 /u xxx.dll”。比如在Windows XP中,在開始→運行中輸入“regsvr32 %windir%\system32\zipfldr.dll /u”,可以卸載系統自帶的壓縮功能。

Regsvr32應用進階:

1. 一次註冊或卸載多個DLL

要一次註冊或卸載多個DLL檔,可採用批次處理的方法來實現,不過注意加上“/s”參數(不顯示註冊成功對話方塊),如將a.dllb.dll拷貝到系統資料夾的system32目錄後,用記事本編輯如下內容:

regsvr32 /s a.dll
regsvr32 /s b.dll

將其保存為.bat 檔,運行後即可同時註冊這兩個DLL檔。

2. 一次註冊系統中所有DLL

面對眾多的由DLL檔引起的錯誤,如果不知道究竟誰是罪魁禍首又該怎麼辦呢?這時我們不妨把system32目錄下所有的DLL檔全部註冊一下,這樣一來大多數問題都可以迎刃而解了。在開始→運行中輸入“cmd”後回車,在命令提示符中輸入如下命令即可:

for %1 in (%WinDir%\SYSTEM32\*.DLL) DO RegSvr32.EXE /s %1

為了便於使用,可以在記事本中輸入該命令並將其保存為.bat批次檔。以後再遇到一些由DLL檔引起的問題,按兩下運行它就可以了。

3. 註冊卸載添加到DLL檔的右鍵菜單

打開登錄編輯程式,找到[HKEY_CLASSES_ROOT\dllfile\shell]子鍵,如果沒有就新建一個。在其下新建名為註冊的項,再在註冊項下新建名為“command”的子項,並將其默認值修改為“regsvr32 %1”。這樣系統DLL檔的右鍵功能表中就添加了註冊命令。添加卸載命令跟上述方法類似,不過需將“command”值修改為“regsvr32 %1 /u”

沒有留言:

張貼留言