[GELÖST] Abfragen einer selbst gesetzten Umgebungsvariable

Antworten
Nils
Beiträge: 185
Registriert: 16 Sep 2011, 08:59

[GELÖST] Abfragen einer selbst gesetzten Umgebungsvariable

Beitrag von Nils »

Hallo zusammen,

ich habe eine Anwendung, die zum Anzeigen von Dokumenten den Adobe Reader nutzt. Dieser ist auch installiert. Um auf den Adobe Reader zugreifen zu können, wird in einer ini-Datei der Pfad incl. des Namens der .exe-Datei des Adobe Reader eingetragen.
Meine Schwierigkeit besteht nun darin, diesen Pfad korrekt zu ermitteln.

Derzeit setze ich bei Installation des Adobe Reader eine Umgebungsvariable.

Code: Alles auswählen

[Registry_install]
OpenKey [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
set "AdobeReader" = "$InstallDir$"
Wobei ich die Variable $InstallDir$ vorher natürlich mit dem richtigen Wert "füttere".
Dies funktioniert wunderbar.

Das Problem ist die Abfrage dieser Umgebungsvariablen.
Bei der Installation meiner Anwenung versuche ich mit

Code: Alles auswählen

DefVar $AdobeReader$
set $AdobeReader$ = EnvVar ("AdobeReader")
den Wert der Umgebungsvariablen "AdobeReader" auszulesen. Dies scheitert leider immer. Im Log steht dazu:
Set $AdobeReader$ = EnvVar ("AdobeReader")
The value of the variable "$AdobeReader$" is now: "/-!!- not found -!!-/"
.

Das Merkwürdige daran ist, dass ich diverse andere Umgebungsvariablen auf diese Weise abfragen kann, wenn ich "EnvVar ("...")" entsprechend anpasse. Auch das Abfragen anderer von mir auf die selbe Art und Weise gesetzter Umgebungsvariablen ist möglich.

Ich habe die Umgebungsvariable bereits manuell gelöscht und per Hand wieder neu erstellt. Auch habe ich die Werte der Variablen geändert. Alles leider ohne Erfolg.
Frage ich eine beliebige andere Umgebungsvariable ab, so erhalte ich deren Wert. Und auch die .ini-Datei wird dann mit dem entsprechenden Wert korrekt gepatcht. Lediglich die Abfrage scheitert. Aber warum? :?

Hat jemand eine Idee, woran dies liegen kann?

Wenn jemand eine andere Idee hat, wie ich die .ini-Datei mit dem korrekten Pfad (möglichst incl. dem "automatisch" ermittelten Dateinamen des Adobe Readers) patchen kann, gerne her damit. ;)
Bin für alle Vorschläge offen.

Vielen Dank im Voraus für jeden Tipp und jede Idee.
Viele Grüße und noch einen schönen Tag
Nils
Zuletzt geändert von Nils am 21 Sep 2011, 09:08, insgesamt 1-mal geändert.
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Abfragen einer selbst gesetzten Umgebungsvariable nicht

Beitrag von d.oertel »

Hi,

ich weiss nicht ob das die Ursache Deines Problems ist, aber vielleicht.
Wenn Du eine Umgebungsvariable per Registry setzt, ist diese als Umgebungsvariable erst nach dem nächsten Reboot sichtbar.

Hilft das ?

gruss
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Nils
Beiträge: 185
Registriert: 16 Sep 2011, 08:59

Re: Abfragen einer selbst gesetzten Umgebungsvariable nicht

Beitrag von Nils »

Hallo und guten Morgen Herr Oertel,

vielen Dank für Ihre Antwort und den Hinweis. Es kann durchaus sein, dass es an einem nicht erfolgten Neustart liegt. Dies habe ich jedoch nicht weiter getestet, da ich zwischenzeitlich auf eine andere Lösungsmöglichkeit gestoßen bin.
Ich lese nun mit

Code: Alles auswählen

set $AdobeReader$ = takeString(1, splitString (GetRegistryStringValue("[HKEY_CLASSES_ROOT\Software\Adobe\Acrobat\Exe] "), "\""))
den Pfad sowie den Dateinamen des Adobe Reader direkt aus der Registry. Leider habe ich nicht früher den Befehl "GetRegistryStringValue" entdeckt. Nun funktioniert es jedenfalls wunderbar.

Eine Frage habe ich jedoch noch. Warum kann ich eine neu erstellte Umgebungsvariable erst nach einem Neustart abfragen?

Nochmals vielen Dank und einen guten Start in die neue Woche
Nils
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Abfragen einer selbst gesetzten Umgebungsvariable nicht

Beitrag von d.oertel »

Hi,
Warum kann ich eine neu erstellte Umgebungsvariable erst nach einem Neustart abfragen?
Bei vielen Registrywerten ist es so, das es einen Neustart braucht bis diese sich im System rumgesprochen haben.
Kurz - es handelt sich um eine Eigenschaft von Windows.

gruss
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Nils
Beiträge: 185
Registriert: 16 Sep 2011, 08:59

Re: Abfragen einer selbst gesetzten Umgebungsvariable nicht

Beitrag von Nils »

Hallo Herr Oertel,

vielen Dank für die Info. Wieder was gelernt. ;)

Ich wünsche Ihnen noch einen wunderschönen Tag
Nils
Antworten