![]() |
Wo werden dll beim Registrieren in der Registry gespeichert?
Der Titel beinhaltet ja eigentlich schon meine Frage.
Also wenn ich regsvr32 ausführe,in welchem Schlüssel der Registry wird das dann gespeichert? Für mich wäre das wichtig,weil ich dann bei meinem Programm prüfen kann,ob die .dll schon registriert ist und um sie nachher wieder zu entfernen... |
Re: Wo werden dll beim Registrieren in der Registry gespeich
Beim Registrieren mit Regsvr32 werden eine Vielzahl von Schlüsseln geschrieben.
Am Einfachsten prüft man, ob die ProgId einer CoClass vorhanden ist.
Delphi-Quellcode:
Die ProgId besteht immer aus 2 Namen getrennt durch einen Punkt.
function ProgIDExists(const ProgID:WideString):Boolean;
var tmp : TGUID; begin Result := Succeeded(CLSIDFromProgID(PWideChar(ProgID), tmp)); end; z.B. "Word.Application" oder "MeinTest.Hauptobjekt" |
Re: Wo werden dll beim Registrieren in der Registry gespeich
Der richtige und aussagekräftigere Titel wäre wohl "Festellen, ob ein COM-Server im System registriert ist."
Wäre auch was für mein Tutorial. :? |
Re: Wo werden dll beim Registrieren in der Registry gespeich
ich wills ja gar nicht so kompliziert haben :)
was ist denn eine CoClass? ist etwa die .dll-Datei eine CoClass? Mir würde es eigentlich reichen,wenn einer wüsste,welche Schlüssel genau geschrieben werden. Dann könnte man einfach prüfen,ob der/die Schlüssel vorhanden ist/sind und wenn nicht erstellt man ihn/sie,sodass die .dll-Datei dann registriert ist! |
Re: Wo werden dll beim Registrieren in der Registry gespeich
Warum willst du unbedingt deine unsichere und auch unsaubere Lösung nehmen, wenn dir doch shmia eine saubere Lösung gegeben hat?
Eine CoClass ist eine Hilfsklasse für ein COM-Objekt. |
Re: Wo werden dll beim Registrieren in der Registry gespeich
wieso ist das denn unsauber?
naja,ich habe jedenfalls den Quellcode eingefügt, aber dann kommt immer der Fehler,dass "CLSIDFromProgID" ein undefinierter Bezeichner ist... die "saubere" Lösung ist für mich erstmal Neuland, deswegn muss ich mich damit erst länger beschäftigen, um zu kapieren,wie man das jetzt einbinden kann^^ |
Re: Wo werden dll beim Registrieren in der Registry gespeich
Weil du diuch alle Schlüssel enumerieren musst, um dein COM-Objekt zu finden und dann musst du noch entscheiden, ob der Eintrag eine COM--Objekt im System bekannt macht oder ab das irgendein anderer Eintrag ist. Warum also so etwas umständliches implementieren, wenn dir Windows alles schon auf dem Silbertablett präsentiert?
Da musst du mal gucken in welcher Unit die Funktion deklariert ist. |
Re: Wo werden dll beim Registrieren in der Registry gespeich
Die Unit heißt ActiveX.
|
Re: Wo werden dll beim Registrieren in der Registry gespeich
ah,danke für die Antwort,das hilft mir weiter!
Habs schon ausgetestet,mit ActiveX funktioniert der Befehl. Der Befehl ist doch eine Windows-API Funktion, woher weiß man denn dann welche unit man für was einbinden muss. |
Re: Wo werden dll beim Registrieren in der Registry gespeich
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz