Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Problem mit PATH Variable unter XE5 / XE6 (https://www.delphipraxis.net/180131-problem-mit-path-variable-unter-xe5-xe6.html)

jaenicke 27. Apr 2014 11:56

AW: Problem mit PATH Variable unter XE5 / XE6
 
Zitat:

Zitat von Harry Stahl (Beitrag 1257162)
Benutzt Du dafür eine fertige / freie Anwendung, oder hast Du da selber etwas gebastelt?

Die gibts bei Microsoft:
http://technet.microsoft.com/de-de/s.../bb897557.aspx
Einfach einen neuen Identifier hinzufügen, z.B. PATH nennen und lesen aus Umgebungsvariable PATH.

Alternativ kann man auch aus der Registry mit 64-Bit aktiviert aus folgendem Pfad lesen:
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH
Bei mir funktionierte es mit der Umgebungsvariablen aber problemlos.

Zitat:

Zitat von Harry Stahl (Beitrag 1257162)
Und wie macht Du das mit den Einträgen in die Registry? Selber editieren oder auch mit einer Batch-Datei?

Manuell editieren, denn meine eigenen Variablen ändere ich ja ohnehin nur selbst. Die habe ich aber in einer Batchdatei drin, da ich diese erstens zum Testen leicht benutzen kann und zweitens im Repository speichere um Änderungen nachzuverfolgen.

Harry Stahl 27. Apr 2014 18:10

AW: Problem mit PATH Variable unter XE5 / XE6
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, jetzt vorab mal vielen Dank für Eure hilfreichen Hinweise, damit ist es mir gelungen, eine für mich brauchbare Lösung zu gestalten.

In der Anlage habe ich mal einen Screenshot der Registry-Seite gelegt (am besten den zur Seite legen, wenn Ihr hier weiter lest).

Entscheidend ist also, dass man die Einträge in dem Schlüssel
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH
macht.

Dort steht bei mir jetzt nur noch %Pathes% drin. Pathes ist ein Schlüssel, den ich selber angelegt habe und der vom Typ "Wert der erweiterbaren Zeichenfolge" ist (also "REG_EXPAND_SZ"). Erweiterbar ist deswegen wichtig, weil ich hier drin quasi "Alias"-Werte ablege, die erst noch erweitert werden müssen, um Sinn zu machen.

Im Pathes-Schlüssel steht nun folgendes drin:
Code:
%XE5%;%XE4%;%XE3%;%XE2%;%XE%;%D2007%;%D5%;%D2%;%CollabNet%;%ASys%;%Acronis%;%TMS%
Die einzelnen Variablen habe ich als normale Schlüssel angelegt oder als erweiterbaren Schlüssel, falls er im Wert bereits eine Variable enthält (vgl. anl. Screenshot).

Für %XE5% ist also z.B. folgendes eingetragen:
Code:
C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin;C:\Users\Public\Documents\RAD Studio\12.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin64;C:\Users\Public\Documents\RAD Studio\12.0\Bpl\Win64
Vorteil des ganzen ist, dass man schnell sieht, wenn ein Programm etwas in den Path-Schlüssel hinzufügt. Außerdem ist der Inhalt kurz gehalten. Sinn des ganzen ist es hier zu vermeiden, was mir hier vor 2 Tagen passiert ist: Offensichtlich war der "normale" Path-Eintrag so lang, dass ein Programm, dass den Path erweitern wollte, den ganzen Eintrag verstümmelt hatte. Daher funktioniert danach bei den unterschiedlichen Delphi-Installationen das eine oder andere nicht mehr so richtig.

So bleibt das jetzt übersichtlich und ist im Bedarfsfall schnell zu reparieren.

Wenn man jetzt z.B. Delphi startet und unter Tools, Umgebungsvariablen nachsieht, werden alle expandierten Verzeichnisse angezeigt.

Was tatsächlich im Path-Eintrag drin steht, kann man in einer DOS-Shell mit "Echo %Path%" kontrollieren.

UND noch ein wichtiger Hinweis: Die Einträge in der Registry sind nicht sofort wirksam, sondern z.T. erst nach einmal abmelden und neu anmelden. Wenn jemand eine Möglichkeit kennt, das durch einen Befehl sofort im System zu aktualisieren, wäre ich für einen Hinweis dankbar.

Union 27. Apr 2014 18:48

AW: Problem mit PATH Variable unter XE5 / XE6
 
Zitat:

Zitat von Harry Stahl (Beitrag 1257182)
UND noch ein wichtiger Hinweis: Die Einträge in der Registry sind nicht sofort wirksam, sondern z.T. erst nach einmal abmelden und neu anmelden. Wenn jemand eine Möglichkeit kennt, das durch einen Befehl sofort im System zu aktualisieren, wäre ich für einen Hinweis dankbar.

Das kannst Du mit einem kleinen Tool oder einem PowerShell-Script erreichen. Du musst dafür eine Broadcast-Message schicken.

Harry Stahl 27. Apr 2014 19:07

AW: Problem mit PATH Variable unter XE5 / XE6
 
Ach ja stimmt, schon fast wieder vergessen!

Es reicht also schon ein Miniprogramm, wo man letztlich nur das verwenden muss:

Delphi-Quellcode:
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment')));

himitsu 27. Apr 2014 19:28

AW: Problem mit PATH Variable unter XE5 / XE6
 
Du mußt nur mal ausprobieren, ob es wirklich Unicode sein kann, oder ob das eventiell als ANSI übergeben werden muß.
Im MSDN steht da nichts explizit dazu und der Schweizer Code ist so alt, daß es damals noch 7 Jahre lang nur ANSI-Delphis gab.

samso 27. Apr 2014 22:00

AW: Problem mit PATH Variable unter XE5 / XE6
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich verstehe nicht,warum Ihr das in der Registrierung ändert.Geht das nicht ganz normal in der Systemsteuerung?

Harry Stahl 27. Apr 2014 22:21

AW: Problem mit PATH Variable unter XE5 / XE6
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ja, das hat insofern einen Grund, als dass man in den Dialogen vom Systemeigenschaften-Dialog keine Einträge mit "Reg_Expand_SZ" anlegen kann, sondern nur normale Variablen. Außerdem sind dort die Dialoge und Editfelder noch kleiner als die des Registry-Editors und die Übersicht ist einfach besser in dem großen Fenster des Registry-Editors, als in dem kleinen Minifenstern des Systemeigenschaften-Dialogs (das ist echt unzumutbar, damit zu arbeiten).

Übrigens konnte ich gerade noch mal den Test machen: Hatte meinen PC aus anderen Gründen aus einem Backup wiederhergestellt und danach nach Anlage des "%Pathes" Eintrags wie oben beschrieben, Delphi XE6 installiert.

Nun konnte man die neuen Einträge wunderbar im Path-Eintrag sehen und dafür eine neue Systemvariable %XE6% anlegen und somit den Pathes-Eintrag ergänzen. Wirklich nützliche Sache.

Edit: Hab mal ein entsprechendes Mini-Programm dazu geschrieben (siehe anliegenden Screenshot) und dort auch eine kurze Info und den Link auf diesen Thread integriert, falls man dazu mal noch was nachlesen möchte. In der ZIP-Datei ist die Kompilierte Exe-Datei (XE6) und das Projekt selber drin. Könnt Ihr natürlich nach Lust und Laune verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Seite 4 von 4   « Erste     234   

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