AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Umgebungsvariablen dauerhaft setzen

Umgebungsvariablen dauerhaft setzen

Ein Thema von arbu man · begonnen am 26. Jan 2007 · letzter Beitrag vom 26. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#1

Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 13:05
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
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 13:13
Dafür gibt es die globale Environment Variable PATH.

Systemeigenschaften => Erweitert => Umgebungsvariablen
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#3

Re: Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 13:22
Und wie geht das mit Delphi ?
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 13:54
Wohl nur durch Eintragen in die Registry.

Google mal nach "Umgebungsvariablen Registry".
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 13:55
Werden die nicht in der autoexec.bat gesetzt?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#6

Re: Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 19:10
Zitat von IngoD7:
Wohl nur durch Eintragen in die Registry.

Google mal nach "Umgebungsvariablen Registry".
Hab ich gemacht und den Schlüssel "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contr ol\Session Manager\Environment\" gefunden. Da kann ich jetzt Variablen bestimmen. Aber diese kann mich nur so aufrufen:

%myapp%

ich würde meine Anwendung lieber so aufrufen:

myapp

Wie mache ich das ?


Zitat von inherited:
Werden die nicht in der autoexec.bat gesetzt?
Was ist das für eine Datei und wo finde ich diese ? Scheint nicht auf meiner Plattezu sein...
KA wie das damit gehen soll...

mfg, Björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#7

Re: Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 19:48
Zitat von SubData:
Dafür gibt es die globale Environment Variable PATH.

Systemeigenschaften => Erweitert => Umgebungsvariablen
Ich habe zwar jetzt das Path gefunden, aber ich sehe keine Möglichkeit es mit Delphi zu ändern, TRegistry weigert sich es zu lesen ('') und zu schreiben (ERegistryException)
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#8

Re: Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 19:49
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:
Pfad1;Pfad2;Pfad3;P:\Fad\4;...
usw.

Du fügst einfach hinten ein Semikolon und deinen Pfad an und die Sache ist geritzt.

Zitat von arbu man:
Was ist das für eine Datei und wo finde ich diese ? Scheint nicht auf meiner Plattezu sein...
KA wie das damit gehen soll...
Die AUTOEXEC.BAT war mal die Autorun-Startdatei für Dos. Alle Befehle darin wurden beim Systemstart automatisch ("auto") ausgeführt ("exec"). Die Datei gibt's unter NT und XP und ähnlichem nicht mehr - stattdessen gibt es AUTOEXEC.NT - die wird aber imho nur beim Öffnen von cmd.exe und so gestartet.

Gruß,
Waldteufel
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#9

Re: Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 20:04
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
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.657 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Umgebungsvariablen dauerhaft setzen

  Alt 26. Jan 2007, 20:27
Mit diesem Code kannst Du Umgebungsvariablen setzen und das dauerhaft:

Delphi-Quellcode:
//********************************************************************************
{*********************************************}
{ 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 }
Aber sinnvoller wäre es schon, wenn Du die Pfadvariable erweitern würdest.
Also voher den Pfad/Path auslesen, erweitern und zurückschreiben.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf