Wie überprüft man, ob eine DLL-Datei registriert ist?
Wie kann ich feststellen, ob eine DLL-Datei, die in C# geschrieben oder nicht registriert ist programmatisch?
Ich habe bereits versucht diesen code, aber es kommt nicht aus.
Wenn ich mich registrieren einer DLL-Datei und überprüfen Sie mit diesem code gibt es. Wenn ich meinen es und führen Sie das gleiche Stück code, es gibt wieder wahr. Ich gebe das fullpath der DLL-Datei als argument.
Entwickelten wir eine einfache DLL-Datei in Visual C++. Nach, dass wir es registriert. Das wollen wir jetzt bestätigen wheteher es registriert ist.
Bob, ersetzen Sie den code auf Ihre eigene, es ist immer noch schwierig für mich?
Wenn ich mich registrieren einer DLL-Datei gibt es einen Eintrag in der registry vorhanden? Ist finde ich diese Einträge und Richter wheteher die DLL-Datei registriert ist oder nicht?
Die Letzte Antwort ist mit einigen Modifikationen. Ich sah in der Typbibliothek anstelle der clsid.
earwicker der:
Ja, ich habe es geschafft mit eine leichte Modifikation. Es funktioniert jetzt.
InformationsquelleAutor der Frage | 2009-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie herausfinden der GUID, der ein COM-Objekt in der DLL definiert. Dann schauen Sie auf den registry-Schlüssel:
Ersetzen Sie das x mit der GUID.
Es sollte eine Standard-Wert, der enthält den vollständigen Pfad zu der DLL.
InformationsquelleAutor der Antwort Daniel Earwicker
Wenn du meinst, eingetragen im GAC, hier ist meine überlegung: registriert werden im GAC, eine assembly muss mit einem starken Namen signiert (public-key-token in seinem Namen).
So können Sie versuchen, laden Sie es mit
Assembly.Load(string)
wenn SieFileNotFoundException
- assembly nicht im GAC registriert.Wenn bekam keine Fehlermeldung, aber das Ergebnis
Assembly.GetName().GetPublicKeyToken()
ist null oder leer-das bedeutet, dass Sie gefunden assembly im application-Verzeichnis, nicht im GAC.InformationsquelleAutor der Antwort abatishchev
Diese:
Wo "gEncrypt.clsEncrypt" ComName.ClassName.
InformationsquelleAutor der Antwort javier
InformationsquelleAutor der Antwort Francois
Wenn Sie wissen, die die CLSID der COM-dll verwenden, können Sie einfach überprüfen, ob es einen Schlüssel mit, die CLSID auf
HKEY_CLASSES_ROOT\CLSID\{CLSID-of-your-COM-component}
oderHKEY_CLASSES_ROOT\Wow6432Node\CLSID\{CLSID-of-your-COM-component}
(Wow6432Node => 32-bit-COM registriert und in einer 64-bit Maschine)Hier ist ein Beispiel:
InformationsquelleAutor der Antwort Caio Proiete
InformationsquelleAutor der Antwort BobbyShaftoe
InformationsquelleAutor der Antwort Vinay