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