Seite 1 von 1
SetEnvironmentVariable() scheint nicht zu funktionieren
Verfasst: 05.03.2007 23:44
von wolle212
Hallo Leute,
ich bin dabei mir ein kleines Programm zu proggen, was meine Windows-PATH-Systemvariable erweitern soll. Das Auslesen mittels
klappt, allerdings zeigt das Ausführen von
kein sichtbares Resultat -- die PATH-Variable bleibt, wie sie ist.
Ist das nun ein Bug in PureBasic oder wende ich die Funktion falsch an (von wegen Umgebungsblock)? Bin für jede hilfreiche Antwort dankbar

Verfasst: 05.03.2007 23:51
von PMV
Die Funktion ändert die Variable nur für dein Programm und alle anderne
Prozesse, die mit RunProgramm gestartet werden. Beachte die Form ->
Zukunft, wenn ich mich jetzt nicht vertue, "erben" die RunProgram()
programme die gesetzten Variablen, aber sie können dann nicht mehr zur
lauft zeit der "Client-Programme" geändert werden.
MFG PMV
Verfasst: 06.03.2007 11:45
von #NULL
also bei dem code aus deinem post hast du die schift-taste ein zeichen zu lang gehalten

:
Variable("PATH"
;neuerPfade.s)
..aber das wird es ja wohl nicht sein, hätte der compiler ja was gesagt.
hast du darauf geachtet, dass es ein benutzter- und eine system-variante von PATH gibt? ich glaub PB ändert nur die benutzer-var, aber ich weiß nicht, wo genau der unterschied zwischen denen liegt.
<edit>
also
GetEnvironmentVariable("path")
gibt mir die summe aus der user- und der sys-variablen. wenn ich sie z.b. mit
SetEnvironmentVariable("path",GetEnvironmentVariable("path")+";C:\test\")
erweitere, dann erhalte ich mit
GetEnvironmentVariable("path")
auch die erweiterte version. unter windows selbst (außerhalb des programms) verändert sich nichts. nicht nach und nicht wärend des programms.
wenn du globale änderungen vornehmen willst, kannst du das bestimmt mit RunProgramm(..) in verbindung mit dem windows SET command machen.
Verfasst: 06.03.2007 14:43
von stbi
wenn der Systempfad dauerhaft geändert werden soll, muss das in der Registry erfolgen:
HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment
Danke!
Verfasst: 06.03.2007 22:26
von wolle212
OK - sowas habe ich mir schon gedacht.
Ich werde das mal angehen. Vielen Dank
