Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Wo werden dll beim Registrieren in der Registry gespeichert? (https://www.delphipraxis.net/102260-wo-werden-dll-beim-registrieren-der-registry-gespeichert.html)

Mike07 25. Okt 2007 16:57


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...

shmia 25. Okt 2007 17:05

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:
function ProgIDExists(const ProgID:WideString):Boolean;
var
   tmp : TGUID;
begin
   Result := Succeeded(CLSIDFromProgID(PWideChar(ProgID), tmp));
end;
Die ProgId besteht immer aus 2 Namen getrennt durch einen Punkt.
z.B. "Word.Application" oder "MeinTest.Hauptobjekt"

Luckie 26. Okt 2007 08:45

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. :?

Mike07 26. Okt 2007 10:47

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!

Luckie 26. Okt 2007 10:54

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.

Mike07 26. Okt 2007 11:56

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^^

Luckie 26. Okt 2007 12:26

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.

Reinhardtinho 26. Okt 2007 14:05

Re: Wo werden dll beim Registrieren in der Registry gespeich
 
Die Unit heißt ActiveX.

Mike07 26. Okt 2007 15:05

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.

Dunkel 26. Okt 2007 15:30

Re: Wo werden dll beim Registrieren in der Registry gespeich
 
Zitat:

Zitat von Mike07
woher weiß man denn dann welche unit man für was einbinden muss.

Ausprobieren, F1, PSDK, MSDN, DP, Google,... such Dir was aus. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz