Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.119 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit SetEnvironmentVariable

  Alt 3. Mär 2004, 16:23
Moin Cruiser,

das Problem an der Sache ist folgendes:
Wenn aus einer Konsole heraus ein Programm gestartet wird, so erbt es in der Regel das Environment des Aufrufers, also das der Konsole, und arbeitet mit einer Kopie dieses Environments.
Wird das Programm dann geschlossen, so sind auch alle Änderungen an den Umgebungsvariablen hinfällig.
Es bringt auch leider nichts die Werte direkt in die Registry zu schreiben, da diese erst nach den Start einer neuen Konsole ziehen. Eine Broadcast Message an alle Toplevel Fenster, dass sich etwas im Enviroment geändert hat bringt leider auch nichts, da die Konsolen diese nicht verarbeiten.

Der Workaround den Microsoft dazu vorschlägt ist dann auch der auf den man wohl noch selber kommen würde:
Das Programm das Umgebungsvariablen setzen soll, die dann im weiteren Verlauf des Batches benögtigt werden, erzeugt eine Batchdatei mit festgelegtem Namen, und den entsprechenden Set-Zeilen zum Setzen der Variablenwerte.
Nach dem Aufruf des Programmes muss dann noch der Aufruf eben dieser, durch das Programm erst erzeugten, Batchdatei folgen, damit weitere Programme auf die Werte der Variablen zugreifen können.

Meine Idee dazu, die ich allerdings bislang nicht weiter verfolgt habe:
Man müsste das Environment des Parentprozesses manipulieren, um den Workaround vermeiden zu können.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat