Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Mit InnoSetup COM-Exe registrieren? (https://www.delphipraxis.net/100818-mit-innosetup-com-exe-registrieren.html)

ralfiii 4. Okt 2007 11:18


Mit InnoSetup COM-Exe registrieren?
 
Meine Anwendung ist ein out-of-process COM server, den ich bei der Installation registrieren möchte.

Normalerweise macht man das bei Delphi-COM-Exe's mit einem Aufruf
MyApp /regServer

Kann ich das bei InnoSetup irgendwie vernünftig machen?

Danke,
Ralf

sakura 4. Okt 2007 11:26

Re: Mit InnoSetup COM-Exe registrieren?
 
Zitat:

Zitat von ralfiii
Normalerweise macht man das bei Delphi-COM-Exe's mit einem Aufruf
MyApp /regServer

Kann ich das bei InnoSetup irgendwie vernünftig machen?

Mache es doch genau so, das ist der"vernünftige" Weg ;)

...:cat:...

ralfiii 4. Okt 2007 11:58

Re: Mit InnoSetup COM-Exe registrieren?
 
Zitat:

Zitat von sakura
Mache es doch genau so, das ist der"vernünftige" Weg ;)

Na gut... :thumb: läuft!

shmia 4. Okt 2007 17:17

Re: Mit InnoSetup COM-Exe registrieren?
 
Jede DLL, OCX sollte in der Versionsinfo einen zusätzlichen Schlüssel names OLESelfRegister haben (Inhalt bleibt leer). Ein guter Installer prüft diesen Schlüssel und nimmt die Registrierung selbstständig vor.

shadowman 24. Apr 2012 17:49

AW: Mit InnoSetup COM-Exe registrieren?
 
Hallo,

lange her seit dem letzten Beitrag hier, aber besser hier als ein neuer Thread, denke ich :)

InnoSetup bietet (inzwischen) eine Option "Server Regestrieren", die man bei der gewünschten Datei anklicken kann. Dadurch wird dann vermutlich automatisch "MyApp /regServer" ausgeführt, oder?

Eine andere Frage noch: gibt es auch eine Möglichkeit, den Server zu deregistrieren, wenn die Anwendung deinstalliert wird? Also mit InnoSetup, meine ich.

Bernhard Geyer 24. Apr 2012 19:36

AW: Mit InnoSetup COM-Exe registrieren?
 
Zitat:

Zitat von shadowman (Beitrag 1163393)
Eine andere Frage noch: gibt es auch eine Möglichkeit, den Server zu deregistrieren, wenn die Anwendung deinstalliert wird? Also mit InnoSetup, meine ich.

Wie wäre es mit: <MyApp> /unregserver?

shadowman 25. Apr 2012 07:06

AW: Mit InnoSetup COM-Exe registrieren?
 
Schon klar, nur sehe ich keine unregister-Option in InnoSetup, deswegen auch die Frage, ob es damit irgendwie automatisch geht oder ob man es zu Fuss machen muss.

Bernhard Geyer 25. Apr 2012 08:25

AW: Mit InnoSetup COM-Exe registrieren?
 
Es gibt 'ne UnregisterServer-ScriptFunktion wie es eine RegisterServer-Funktion gibt.

Jens01 25. Apr 2012 16:22

AW: Mit InnoSetup COM-Exe registrieren?
 
Ich hoffe ich verstehs richtig.
Es gibt doch diese Flags, die man einfach hinter die Einträge schreibt:

Code:
[Registry]
Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey

uninsclearvalue
When the program is uninstalled, set the value's data to a null string (type REG_SZ). This flag cannot be combined with the uninsdeletekey flag.

uninsdeletekey
When the program is uninstalled, delete the entire key, including all values and subkeys in it. It obviously wouldn't be a good idea to use this on a key that is used by Windows itself. You should only use this on keys private to your application.

To prevent disasters, this flag is ignored during installation if Subkey is blank or contains only backslashes.

uninsdeletekeyifempty
When the program is uninstalled, delete the key if it has no values or subkeys left in it. This flag can be combined with uninsdeletevalue.

To prevent disasters, this flag is ignored during installation if Subkey is blank or contains only backslashes.

uninsdeletevalue
Delete the value when the program is uninstalled. This flag can be combined with uninsdeletekeyifempty.

Bernhard Geyer 25. Apr 2012 16:42

AW: Mit InnoSetup COM-Exe registrieren?
 
Zitat:

Zitat von Jens01 (Beitrag 1163528)
Ich hoffe ich verstehs richtig.
Es gibt doch diese Flags, die man einfach hinter die Einträge schreibt:

Code:
[Registry]
Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey

Für einfache Registry-Keys würde man es schon machen, aber nicht für die Registry-Keys welche bei einer COM-Registrierung nötig sind.
Dort verlässt man sich auf die Windows-Automatismen bezüglich korrekten Eintragen der keys.

shadowman 26. Apr 2012 13:34

AW: Mit InnoSetup COM-Exe registrieren?
 
Ok, die Flags aus Post #5 sind für in process COM server gedacht (DLL/OCX). In meinem Fall ist es ein out of process COM server (eine exe-Datei). In diesem Fall braucht man "nur" Folgendes zu machen:

[Run]
Filename: {app}\MyApplication.exe; Parameters: /Regserver

[UninstallRun]
Filename: {app}\MyApplication.exe; Parameters: /UnRegserver; RunOnceId: MyApplicationRemove


Die installierten COM-Server kann man sich übrigens mit oleview.exe von Microsoft anzeigen lassen. Der Server, der wie oben im Beispiel installiert wurde, befindet sich dann unter "Type Libraries".


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr.

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