Windows

我如何知道 DLL 是否已註冊?

  • September 26, 2019

當您在舊機器 (Windows XP) 中註冊 DLL 時,regsrv 總是說註冊成功。即使使用者沒有註冊權限,也會發生這種情況。

使用 dll 的名稱,是否有可以在命令行執行的命令來驗證是否安裝了 DLL?

我找到了這個連結:如何判斷 DLL 是否已註冊?

鑑於 DLL 註冊可以包含任意操作,因此沒有通用方法來確定是否已為任意 DLL 進行註冊。

要確定 DLL 是否已註冊,您需要引入特定領域的知識。如果您知道 DLL 使用特定 CLSID 註冊 COM 對象,則可以檢查該 CLSID 是否確實已註冊。

好的,這是不可能的,但是 DLL 通常會註冊自己,在寄存器中創建一個條目。一種解決方法是:

  1. 首先,您必鬚髮現 DLL 的 COM GUID。如果您有一台已經註冊的機器,您可以:

  2. 打開 regedit 並蒐索您的 DLL 文件名

  3. 如果已註冊,您將在 TypeLib 下的鍵下找到文件名。密鑰將如下所示:{9F3DBFEE-FD77-4774-868B-65F75E7DB7C2}

  4. 現在您知道 DLL GUID,您可以在 DOS 提示符下使用以下命令搜尋它:reg query HKCR\CLSID | find /i "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}"

更好的答案是讓我在註冊之前直接從文件中找到 GUID。至少通過這種方式,您可以創建一個腳本來安裝並驗證它是否已成功安裝。

引用自:https://serverfault.com/questions/576831