Comment trouver une DLL à partir D'un CLSID?

j'ai une situation dans laquelle une DLL gérée appelle une DLL non gérée. Je connais le CLSID de la DLL non gérée, y a-t-il un moyen de trouver quelles maisons de fichiers binaires ce CLSID?

28
demandé sur dudemonkey 2009-05-22 17:07:23

3 réponses

Normalement, vous pouvez simplement aller à:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\ "GUID"

et trouver une clé appelée "InProcServer32" par exemple et il y aura la valeur par défaut qui a la DLL. C'est une façon simple de le faire.

35
répondu BobbyShaftoe 2009-05-22 13:13:19

pouvez-vous non seulement le rechercher dans le registre en utilisant regedit et rechercher le chemin binaire.

7
répondu Simon 2009-05-22 13:11:32

basé sur la réponse de BobbyShaftoe nous pouvons construire un script vbs simple qui lit ce registre pour nous:

Dll_RegPath = "HKEY_CLASSES_ROOT\CLSID\<GUID>\InProcServer32\"

coller ce qui suit à " tester.vbs"

Sub Main

    ' used to find location of "System.Collections.ArrayList" progid dll
    Const csGUID = "{6896B49D-7AFB-34DC-934E-5ADD38EEEE39}"

    MsgBox srGetDllPathByGUID(csGUID)

End Sub

Function srGetDllPathByGUID( sGUID )
    Const csRegPath = "HKEY_CLASSES_ROOT\CLSID\<GUID>\InProcServer32\"

    Dim oShell: Set oShell = CreateObject("WScript.Shell")
    Dim sReg: sReg = Replace( csRegPath, "<GUID>", sGUID ) ' build str

    srGetDllPathByGUID = oShell.RegRead(sReg)

    Set oShell = Nothing ' clean up
End Function

Call Main

vous pouvez aussi trouver ProgId by:

ProgID_RegPath = "HKEY_CLASSES_ROOT\CLSID\<GUID>\ProgID\"
3
répondu n3rd4i 2015-02-08 09:05:55