Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Warum keine Umgebungsvariablen nutzen? (https://www.delphipraxis.net/172523-warum-keine-umgebungsvariablen-nutzen.html)

Popov 8. Jan 2013 19:49

Warum keine Umgebungsvariablen nutzen?
 
Ich kann mich nicht mehr erinnern warum, ich hab es nur so im Kopf, es früher paar mal gelesen zu haben, dass es nicht empfohlen wird Systempfade über die Umgebungsvariablen zu ermitteln.

Das habe ich auch nie als Einschränkung gesehen, da ich dafür sowieso eine spezielle Unit nutze, aber gerade stehe ich wieder vor der Frage wegen des Temp-Verzeichnises eine Unit einzubinden oder es einzeilig über GetEnvironmentVariable zu ermitteln. Und da ist mir wieder die alte Empfehlung eingefallen.

dunningkruger 8. Jan 2013 20:07

AW: Warum keine Umgebungsvariablen nutzen?
 
Manche Installationsprogramme (alte Delphis z.B.) manipulieren die Environmentvariablen. Oft war damals bei 256 Zeichen das Ende erreicht: Es wurde an den PATH angehängt.

Unter XP SP3 würde ich nichts mehr unterstützen (ausgenommen fürstliche Bezahlung).

Delphi-Laie 8. Jan 2013 20:40

AW: Warum keine Umgebungsvariablen nutzen?
 
Zur Ermittlung des Tempverzeichnisses (bzw. konkreter Temppfades) kann man doch die API-Funktion GetTempPath benutzen. Von wegen Umgebungsvariable...

Popov 8. Jan 2013 21:15

AW: Warum keine Umgebungsvariablen nutzen?
 
Diese Api-Funktion kenne ich, es gibt noch welche für Windows- und Systemverzeichnis, aber auch nicht einzeilig.

Aber es geht weniger dadrum, weil wie gesagt, für solche Aufgaben habe ich eine Unit. Mich interessiert es vorerst allgemein ob es da wirklich gründe gegen Umgebungsvariablen gibt.

Sir Rufo 8. Jan 2013 21:31

AW: Warum keine Umgebungsvariablen nutzen?
 
Spontan fallen mir 2 Gründe ein:
  1. Die Pfade kann man sich (die API mal ausgenommen) aus den Umgebungsvariablen oder der Registry holen.
    Ob Microsoft aber dieses - Speicherort und Pfad, Name der Variablen - so beibehält (auch wenn es seit anno-piepen-deckel so ist) wird nicht gewährleistet.
  2. Wenn man weiß, was es bedeutet, dann kann man auch die Umgebungsvariablen benutzen, wenn es genau das ist, was man haben will.

    Die Umgebungsvariablen können pro Prozess temporär neu definiert werden. Wenn ich genau diese temporäre und für diesen Prozess hinterlegten Informationen möchte, dann muss man auf die Umgebungsvariablen zugreifen.

    Will man an die Informationen heran, die global für die Session gelten, dann sollte man auch die API fragen.

Popov 8. Jan 2013 21:42

AW: Warum keine Umgebungsvariablen nutzen?
 
Ich glaube wir nähern uns dem Grund. Es fällt mir wieder leicht ein. Da war was mit - unsicher.

Daniel 9. Jan 2013 07:46

AW: Warum keine Umgebungsvariablen nutzen?
 
Auszug aus dem MSDN:

Zitat:

The GetTempPath function checks for the existence of environment variables in the following order and uses the first path found:
The path specified by the TMP environment variable.
The path specified by the TEMP environment variable.
The path specified by the USERPROFILE environment variable.
The Windows directory.
Quelle:
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz