Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CreateProcess & Umgebungsvariablen (https://www.delphipraxis.net/90535-createprocess-umgebungsvariablen.html)

little-x 19. Apr 2007 08:04


CreateProcess & Umgebungsvariablen
 
Hallo!

1. Ich setze in meinem Delphi-Programm einige Umgebungsvariablen
(SetEnvironmentVariable...)

2. Anschließend rufe ich mittels CreateProcess ein fremdes (u.a. Delphi-)Programm auf.

Beides funktioniert.

Nun meine Frage: Ist es möglich, dafür zu sorgen, dass die in Punkt 1) gesetzten Umgebungsvariablen auch im aufgerufenen Programm bekannt sind und verwendet werden können?

Oder geht das automatisch? Ich kenn mich in der Materie nicht so aus...

Viele Grüße

mkinzler 19. Apr 2007 08:05

Re: CreateProcess & Umgebungsvariablen
 
Diese Umgebungsvariablen können von allen Programmen ausgelesen werden.

Robert Marquardt 19. Apr 2007 08:18

Re: CreateProcess & Umgebungsvariablen
 
Es ist genau geregelt welches Environment der gestartete Prozess bekommt. Man kann dem Prozess das eigene Environment vererben oder ihm ein massgeschneidertes mitgeben. Das ist der Parameter lpEnvironment bei CreateProcess.

Olli 20. Apr 2007 01:43

Re: CreateProcess & Umgebungsvariablen
 
Zitat:

Zitat von mkinzler
Diese Umgebungsvariablen können von allen Programmen ausgelesen werden.

... welche von ihm gestartet wurden (also die Umgebung vererbt bekamen) ...
Zitat:

The SetEnvironmentVariable function sets the contents of the specified environment variable for the current process.
Ansonsten siehe Roberts Kommentar. Uebrigens ist hier eine kleine Besonderheit zu beachten. Auch ein mit CreateProcessA gestarteter Prozess kann eine Unicode-Umgebung uebergeben bekommen. Haengt immer von den Flags ab. Das nur als Hinweis. Laesst sich uebrigens mit Delphis AnsiString hervorragend machen, da dort #0 kein Stopzeichen ist. Bspw. GetEnvironmentStrings zum Auslesen benutzen und dann selber als DelphiString modifizieren :-D


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