![]() |
Umgebungsvariablen dauerhaft setzen
Hi,
Ich möchte gerne eine Umgebungsvariable dauerhaft mit einen Wert belegen, um damit meine Programme aus der shell heraus starten zu können. Bsp.: C:\>myapp.exe startet dann myapp.exe, die aber in einen anderen Verzeichnis liegt. Ich habe es schon mit der Funktion "SetEnvironmentVariable" versucht allerdings scheint diese die Werte nicht dauerhaft zu verändern. mfg, Björn |
Re: Umgebungsvariablen dauerhaft setzen
Dafür gibt es die globale Environment Variable PATH.
Systemeigenschaften => Erweitert => Umgebungsvariablen |
Re: Umgebungsvariablen dauerhaft setzen
Und wie geht das mit Delphi ?
|
Re: Umgebungsvariablen dauerhaft setzen
Wohl nur durch Eintragen in die Registry.
Google mal nach "Umgebungsvariablen Registry". |
Re: Umgebungsvariablen dauerhaft setzen
Werden die nicht in der autoexec.bat gesetzt?
|
Re: Umgebungsvariablen dauerhaft setzen
Zitat:
%myapp% ich würde meine Anwendung lieber so aufrufen: myapp Wie mache ich das ? Zitat:
KA wie das damit gehen soll... mfg, Björn |
Re: Umgebungsvariablen dauerhaft setzen
Zitat:
|
Re: Umgebungsvariablen dauerhaft setzen
Hi Arbu Man.
Du musst einfach nur den Pfad deiner Anwendung (also den Ordner, in dem sie liegt) in die Umgebungsvariable PATH eintragen. Diese hat etwa folgenden Aufbau
Code:
usw.
Pfad1;Pfad2;Pfad3;P:\Fad\4;...
Du fügst einfach hinten ein Semikolon und deinen Pfad an und die Sache ist geritzt. Zitat:
Gruß, Waldteufel |
Re: Umgebungsvariablen dauerhaft setzen
Hi Waldteufel,
dieSache ist nur die die TRegistry Klasse weigert sich beharlich die Zeichen Folge einzulesen oder gar zu ändern. Beim Einlesen gibt es einen Leerstring und beim Schreiben, ne ERegistryException. Ich vermutet es liegt vielleicht am Datentype: REG_EXPAND_SZ. mfg, Björn |
Re: Umgebungsvariablen dauerhaft setzen
Mit diesem Code kannst Du Umgebungsvariablen setzen und das dauerhaft:
Delphi-Quellcode:
Aber sinnvoller wäre es schon, wenn Du die Pfadvariable erweitern würdest.
//********************************************************************************
{*********************************************} { Set Global Environment Function } { Coder : Kingron,2002.8.6 } { Bug Report : [email]Kingron@163.net[/email] } { Test OK For Windows 2000 Advance Server } { Parameter: } { Name : environment variable name } { Value: environment variable Value } { Ex: SetGlobalEnvironment('MyVar','OK') } {*********************************************} function SetGlobalEnvironment(const Name, Value: string; const User: Boolean = True): Boolean; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; begin with TRegistry.Create do try if User then { User Environment Variable } Result := OpenKey(REG_USER_LOCATION, True) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Result := OpenKey(REG_MACHINE_LOCATION, True); end; if Result then begin WriteString(Name, Value); { Write Registry for Global Environment } { Update Current Process Environment Variable } SetEnvironmentVariable(PChar(Name), PChar(Value)); { Send Message To All Top Window for Refresh } SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment'))); end; finally Free; end; end; { SetGlobalEnvironment } Also voher den Pfad/Path auslesen, erweitern und zurückschreiben. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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