Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   kann man umgebungsvariablen in der registry benutzen? (https://www.delphipraxis.net/90436-kann-man-umgebungsvariablen-der-registry-benutzen.html)

messie 17. Apr 2007 14:54


kann man umgebungsvariablen in der registry benutzen?
 
Hallo,

ich kämpfe gerade mit einer alten 16bit-Installationsroutine aus VB4. Da gibt es allerhand alte Datenbank- und OLE-Treiber zu registrieren. Installshield wehrt sich gegen die Registrierung von 16bit-Dateien. Mergemodule in 16 bit habe ich nicht gefunden, vielleicht aus demselben Grund.
Ich habe die reg-Einträge einer funktionierenden Installation exportiert und schreibe die Schlüssel nun direkt via Installshield.
Mein Problem: in der exportierten reg sind die Pfadangaben fest (z.B. C:\\WINDOWS\\SYSTEM\\DAO2516.DLL). Also funzt es nicht, wenn Windows nicht auf c: installiert ist.
Kann man in der registry mit einer Variablen für das System16-Verzeichnis arbeiten, mit der ich in der exportierten Datei den festen Pfad ersetzen kann?
Ich hab' mit der registry ebenso wie mit der Registrierung wenig Erfahrung :(

Grüße, Messie

mkinzler 17. Apr 2007 15:27

Re: kann man umgebungsvariablen in der registry benutzen?
 
Du müsstest halt in der Reg-datei die Pfade bei der Installation ersetzen.

messie 17. Apr 2007 15:30

Re: kann man umgebungsvariablen in der registry benutzen?
 
Zitat:

Zitat von mkinzler
Du müsstest halt in der Reg-datei die Pfade bei der Installation ersetzen.

Ja, nur wie, ohne daß es einen Eingriff des Benutzers geben muss?
Grüße, Messie

mkinzler 17. Apr 2007 15:34

Re: kann man umgebungsvariablen in der registry benutzen?
 
Ich würde ein kleines Programm schreiben, welches die festen Pfade in der Datei durch den Pfad aus der Umgebung ersetzt und dann die Datei ausführt.

SirThornberry 17. Apr 2007 15:35

Re: kann man umgebungsvariablen in der registry benutzen?
 
du kannst bei Installshield doch auch ein Programm angeben welches ausgeführt werden soll. Da kannst du eifnach ein selbst geschriebenes Programm hinn packen. Mit Platzhaltern (Umgebungsvariablen) glaub ich nicht das es funktioniert.

himitsu 17. Apr 2007 15:40

Re: kann man umgebungsvariablen in der registry benutzen?
 
Du verwendest bestimmt REG_SZ als DatenTyp?

REG_EXPAND_SZ ist dafür aber vorgesehn ... dort erweitert die WinAPI-Funktion (also Alles, da es im Normalfall darüber läuft) zum Auslesen des Strings auch gleich mit die darin enthaltenen Umgebungsvariablen.


[add]
Das Auslesen bleibt gleich, nur eim Erstellen des Strings mußt du den passenden Typen verwenden/angeben.

messie 19. Apr 2007 15:02

Re: kann man umgebungsvariablen in der registry benutzen?
 
Zitat:

Zitat von himitsu
Das Auslesen bleibt gleich, nur eim Erstellen des Strings mußt du den passenden Typen verwenden/angeben.

Da ich den String schon als exportierte Registrydaten hatte, konnt ich das nicht festlegen. Ich habe nach einiger Recherche aber herausgefunden, daß der registry-Import den Typen anhand der Formatierung der registry-StringDaten festlegt.
Aus
Zitat:

[HKEY_CLASSES_ROOT\CLSID\{00025e8b-0000-0000-c000-000000000046}\InprocServer]
@="%SystemRoot%\\SYSTEM\\DAO2516.dll"
habe ich
Zitat:

[HKEY_CLASSES_ROOT\CLSID\{00025e8b-0000-0000-c000-000000000046}\InprocServer]
@=hex(2):25,53,79,73,74,65,6D,52,6F,6F,74,25,5C,53 ,59,53,54,45,4D,5C,44,41,4F,32,35,31,36,2E,64,6C,6 C,00
erstellt, das wird beim Import als REG_EXPAND_SZ interpretiert.
Damit läuft es.


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