Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Innosetup trägt die Registryeinträge nicht ein (https://www.delphipraxis.net/183107-innosetup-traegt-die-registryeintraege-nicht-ein.html)

HPB 11. Dez 2014 17:16

Innosetup trägt die Registryeinträge nicht ein
 
Guten Tag Delphianer,
Das Setup das ich mit InnoSetup erstellt habe trägt nicht alle RegistryEinträge ein.
Es werden immer nur die jeweils ersten Einträge übernommen.

Delphi-Quellcode:
[Registry]
Root: "HKCU"; Subkey: "BPSLoge\Config\Anmeldung\Datenbank"; ValueType: string; ValueName: "GDB"; ValueData: "C:\BPSLoge\Datenbank\Loge.GDB"; Flags: createvalueifdoesntexist uninsdeletekey
Root: "HKCU"; Subkey: "BPSLoge\Config\Anmeldung\Datenbank"; ValueType: string; ValueName: "UserName"; ValueData: "SYSDBA"; Flags: createvalueifdoesntexist uninsdeletekey
Root: "HKCU"; Subkey: "BPSLoge\Config\Anmeldung\Datenbank"; ValueType: string; ValueName: "Produkt-Version"; ValueData: "2.2.0.0"; Flags: createvalueifdoesntexist uninsdeletekey
...
Es wird nur der Eintrag: HKEY_CURRENT_USER\BPSLoge\Config\Anmeldung\Datenba nk mit dem dazugehörenden Wert eingetragen.
Alle anderen Einträge werden ingnoriert.
Es ist auch egal ob ich mit Adminrechte installiere.
Da kann man sich die Haare raufen.
Aber woran mag es nur liegen???
Was läuft hier völlig falsch??
Andere mit Innosetup erstellten Installationsroutinen funktionieren problemlos!
Mit Gruß
HPB

Neumann 11. Dez 2014 21:02

AW: Innosetup trägt die Registryeinträge nicht ein
 
Warum in die Registry schreiben? Diese ist nicht einfach zu benutzen; je nach Betriebssystem teilweise unterschiedlich usw.

Einfach die gute alte Ini nehmen und wenn nötig verschlüsseln oder im Verzeichnis %Programdata% ablegen,
dann hat man es leichter.

Sailor 11. Dez 2014 21:58

AW: Innosetup trägt die Registryeinträge nicht ein
 
Wie sieht es mit den Rechten aus? Evtl. werden für die anderen Zweige Administratorrechte gefordert (bin mir ziemlich sicher, daß das so ist).

Uwe Raabe 11. Dez 2014 22:06

AW: Innosetup trägt die Registryeinträge nicht ein
 
Mach doch mal ein Semikolon an die Zeilenenden.

HPB 12. Dez 2014 07:03

AW: Innosetup trägt die Registryeinträge nicht ein
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1283146)
Mach doch mal ein Semikolon an die Zeilenenden.

Guten Tag Uwe,
vielen Dank für die Antwort.

Ich habe Semikolons an das Zeilenende gesetzt. Keine Wirkung.
Danach habe ich die Zeilen vertauscht. D. H. den Eintrag der geschrieben wird,
unter den den Eintrag der nicht geschrieben wird.
Es wird doch immer der gleiche Eintrag geschrieben.

1. Version
Delphi-Quellcode:
[Registry]
Root: "HKCU"; Subkey: "BPSLoge\Config\Anmeldung\Datenbank"; ValueType: string; ValueName: "UserName"; ValueData: "SYSDBA"; Flags: createvalueifdoesntexist deletekey;
Root: "HKCU"; Subkey: "BPSLoge\Config\Anmeldung\Datenbank"; ValueType: string; ValueName: "GDB"; ValueData: "C:\BPSLoge\Datenbank\Loge.GDB"; Flags: createvalueifdoesntexist uninsdeletekey;
In die Registry wird der 2. Eintrag eingetragen.

2. Version
Delphi-Quellcode:
[Registry]
Root: "HKCU"; Subkey: "BPSLoge\Config\Anmeldung\Datenbank"; ValueType: string; ValueName: "GDB"; ValueData: "C:\BPSLoge\Datenbank\Loge.GDB"; Flags: createvalueifdoesntexist uninsdeletekey
Root: "HKCU"; Subkey: "BPSLoge\Config\Anmeldung\Datenbank"; ValueType: string; ValueName: "UserName"; ValueData: "SYSDBA"; Flags: createvalueifdoesntexist deletekey
In die Registry wird der 1. Eintrag geschrieben.

Die Semikolons am Ende der Zeilen werden von InnoSetup wieder gelöscht.
Sie haben wohl keine Bedeutung für den Ablauf.
Wie soll man sich dieses Vorhalten erklären?????

Ist es vielleicht der falsche Regstryzweig?
Mit Gruß
HPB

baumina 12. Dez 2014 07:11

AW: Innosetup trägt die Registryeinträge nicht ein
 
Stimmen denn die Flags?

HPB 12. Dez 2014 07:25

AW: Innosetup trägt die Registryeinträge nicht ein
 
Zitat:

Zitat von baumina (Beitrag 1283162)
Stimmen denn die Flags?

Vilen Dank für den Hinweis.
Ich habe alle Flags entfernt und siehe da die Werte werden nun eingetragen.
Dies Wahl "createvalueifdoesntexist" darf wohl nur beim ersten Eintrag
abgefragt werden. Habe ich anders verstanden.
Gruß HPB

himitsu 12. Dez 2014 08:14

AW: Innosetup trägt die Registryeinträge nicht ein
 
Zitat:

Es ist auch egal ob ich mit Adminrechte installiere.
Ausführen als Administrator?

Tja, dan wird das Programm im Benutzerkontext des Administratoraccounts gestartet, somit ist CurrentUser natürlich der Administrator. :roll:
Ohne Adminrechte gestartet, also innerhalb deines Accounts, solltest du eigentlich ins "eigene" CurrentUser schreiben können.

ABER warum in diesem Pfad? (HKCU\BPSLoge\...)
Wie wäre es mit HKCU\Software\BPSLoge\... ?

bcvs 12. Dez 2014 08:16

AW: Innosetup trägt die Registryeinträge nicht ein
 
Nein, ich denke, es liegt am deletekey.
Du verwendest mal uninsdeletekey und mal deletekey. Ist das so gewollt?

HPB 12. Dez 2014 12:06

AW: Innosetup trägt die Registryeinträge nicht ein
 
Zitat:

Zitat von bcvs (Beitrag 1283172)
Nein, ich denke, es liegt am deletekey.
Du verwendest mal uninsdeletekey und mal deletekey. Ist das so gewollt?

Danke für den Hinweis. Es ist so nicht gewollt. Es wurde geändert.
Und wie oben erwähnt, nun werden auch alle Schlüsselwerte eingetragen.
Mit Gruß
HPB


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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