Delphi-PRAXiS

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)

Harry Stahl 24. Apr 2014 21:18


Problem mit PATH Variable unter XE5 / XE6
 
Liste der Anhänge anzeigen (Anzahl: 1)
Unter XE5 hat es mir anscheinend irgendwie die PATH-Variable zerschossen.

Weiß jemand, wo Delphi das speichert (wohl nur den 2. Eintrag, siehe Screenhshot in Anlage)? Habe noch ein Backup von der ganzen Platte, will aber nicht alles zurückspielen.

Welcher ist der wichtigere Eintrag für Delphi?

Übrigens ist das ja ein toller Dialog zur Bearbeitung des Eintrags. Man hat soviel Platz!:(

Union 24. Apr 2014 21:24

AW: Problem mit PATH Variable unter XE5 / XE6
 
Wird gespeichert unter
Code:
HKCU\Software\Embarcadero\BDS\nn.n\Environment Variables
Wenn ich den Pfad korrigieren (überschreiben) möchte, dann lopiere ich mir den immer erst in einen Texteditor. Dort bearbeit ich den dann in Ruhe (und mit viel Platz und Komfort) bevor ich den dann zurückpaste.

Harry Stahl 24. Apr 2014 21:54

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

Zitat von Union (Beitrag 1256848)
Wird gespeichert unter
Code:
HKCU\Software\Embarcadero\BDS\nn.n\Environment Variables
Wenn ich den Pfad korrigieren (überschreiben) möchte, dann lopiere ich mir den immer erst in einen Texteditor. Dort bearbeit ich den dann in Ruhe (und mit viel Platz und Komfort) bevor ich den dann zurückpaste.

Der Dialog ist wohl gar nicht von EMBA, das gleiche Fenster bekomme ich angezeigt, wenn ich die PATH-Variable über den Windows-System-Dialog bearbeiten will.

So, da es den Systempath zerschossen hat, funktionieren auch die anderen Delphis hier nicht mehr richtig. Ich nehme an, der PATH-Eintrag war wohl zu lang? Hatte mehr als 2000 Zeichen (habe hier Delphi 2, 5, 2007 und XE-XE6 auf dieser Maschine. Wahr wohl ein wenig zuviel des Guten).

Mist, die Windows-System-Wiederherstellung stellt den PATH-Eintrag nicht wieder her!!

Jetzt muss ich das wohl aus einem Backup der Registry herholen. Na toll...

Union 24. Apr 2014 22:06

AW: Problem mit PATH Variable unter XE5 / XE6
 
Der Windows Pfad sollte in
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
stehen. Falls Du Glück hast findest Du noch eine passende Kopie in einem evtl. vorhandenen Duplikat des ControlSet. Ansonsten eben die Delphi(s) neu installieren.

Harry Stahl 24. Apr 2014 22:13

AW: Problem mit PATH Variable unter XE5 / XE6
 
Immerhin hatte ich noch einen Eintrag, der für den ganzen Computer galt (also nicht nur für den aktuellen User), da war auch noch soweit alles benötigte drin.

Das so eine blöde Variable mal richtig wichtig sein könnte...

Aber warum müssen die ganzen Komponentenhersteller sich eigentlich in dieser System-Variablen verewigen? Reicht das nicht, wenn das irgendwo in den LIB-Einstellungen von Delphi erfolgt?

himitsu 24. Apr 2014 22:19

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

Zitat von Harry Stahl (Beitrag 1256854)
Aber warum müssen die ganzen Komponentenhersteller sich eigentlich in dieser System-Variablen verewigen? Reicht das nicht, wenn das irgendwo in den LIB-Einstellungen von Delphi erfolgt?

Das würde ich auch gern wissen, wobei das auch für die Suchpfade im Delphi gilt.

Wenn man mehr als eine Pfad irgendwo reinmacht, dann kann man doch eine Zwischenvariable verwenden.

Uwe Raabe 24. Apr 2014 23:34

AW: Problem mit PATH Variable unter XE5 / XE6
 
Das Zumüllen der PATH-Variablen ist ein generelles Problem und wird nicht nur von Delphi und diversen Komponenten-Herstellern extensiv betrieben. Ich habe mir inzwischen damit geholfen, daß ich in Windows eine Handvoll Umgebungsvariablen anlege, mit denen ich dann die Pfade abkürze. Sehr effektiv dabei ist z.B. PF für "c:\Program Files", PF86 für "c:\Program Files (x86)", SQL für "Microsoft SQL Server" oder RSPROG für "C:\Program Files (x86)\Embarcadero\RAD Studio" und RSPUB für "C:\Users\Public\Documents\RAD Studio". Dummerweise bringt die neue Benennung der Verzeichnisse seit XE6 einen neues Paar Variablen mit sich.

Die Pfade für die SQL-Server-Installationen sehen dann z.B. so aus:
Code:
%PF%\%SQL%\100\Tools\Binn\;
%PF86%\%SQL%\100\Tools\Binn\;
%PF86%\%SQL%\100\Tools\Binn\VSShell\Common7\IDE\;
%PF86%\%SQL%\100\DTS\Binn\;
%PF86%\%SQL%\110\Tools\Binn\ManagementStudio\;
%PF86%\%SQL%\110\Tools\Binn\;
%PF86%\%SQL%\110\DTS\Binn\;
%PF%\%SQL%\110\Tools\Binn\;
%PF%\%SQL%\110\DTS\Binn\;
Da bei Update oder Neuinstallation die Programme ihre gewohnten Pfade nicht finden, tauchen auch gern mal Doubletten auf.

himitsu 25. Apr 2014 00:06

AW: Problem mit PATH Variable unter XE5 / XE6
 
Und jetzt kommt das Ganze noch in eine %SQLServer% Variable, welche dann in den %PATH% eingebaut wird.
Damit würde der Path schön übersichtlich bleiben und wenn du mal einen Pfad entfernen/hinzufügen willst, dann braucht man das nur in der eigenen Variable zu machen und es bleiben keine Leichen in der großen Variable zurück, vorallem beim Deinstallieren.

Harry Stahl 25. Apr 2014 00:18

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

Zitat von Uwe Raabe (Beitrag 1256861)
Ich habe mir inzwischen damit geholfen, daß ich in Windows eine Handvoll Umgebungsvariablen anlege, mit denen ich dann die Pfade abkürze...

Hey, das ist ja mal eine gute Idee! Danke für diesen Tipp! :thumb:

Da werde ich mir das mal entsprechend nachbauen...

jaenicke 25. Apr 2014 04:58

AW: Problem mit PATH Variable unter XE5 / XE6
 
Ich habe alle Einträge in PATH, die ich brauche, in einer eigenen Variable drin. In Path steht nur %Paths%. So sehe ich sofort, wenn ein Programm daran etwas ändert. Und ich weiß auch genau was da vorher stand, wenn ein Programm es kaputt macht.
Mit der Länge hatte ich noch keine Probleme, dafür ist das in der Tat eine gute Idee.

arnof 25. Apr 2014 10:35

AW: Problem mit PATH Variable unter XE5 / XE6
 
bei mir macht das XE2/3 auch regelmäßig, ich habe hier immer wieder richtige Angst was zu installieren ....

Meistens löst sich das Problem mit einem Reboot ohne was zu editieren (da macht man schnell was kaputt)!

Harry Stahl 25. Apr 2014 17:52

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

Zitat von jaenicke (Beitrag 1256876)
Ich habe alle Einträge in PATH, die ich brauche, in einer eigenen Variable drin. In Path steht nur %Paths%. So sehe ich sofort, wenn ein Programm daran etwas ändert. Und ich weiß auch genau was da vorher stand, wenn ein Programm es kaputt macht.
Mit der Länge hatte ich noch keine Probleme, dafür ist das in der Tat eine gute Idee.

Wie macht man das praktisch gesehen am besten?

In einer Batch-Datei mit den Befehlen Set VarName=Value die Environment Variablen jeweils festlegen und schrittweise verdichten und dann die Batch-Datei im Admin-Modus ausführen lassen?

Funktioniert das so?

Harry Stahl 26. Apr 2014 11:32

AW: Problem mit PATH Variable unter XE5 / XE6
 
Hmh, mit einer BAT-Datei (selbst gestartet im Adminmodus) sind die Environment-Variablen anscheinend nur während der Shell-Sitzung gültig und gehen verloren, wenn ich die CMD-Shell schließe.

Muss ich also alles doch manuell in die Registry eintragen, oder gibt es noch einen anderen Weg (mal abgesehen davon, ein extra Programm dafür zu schreiben)?

Hier ist die Batch-Datei, die ich mir ausgedacht hatte:
Code:
REM Delphi *****************************************************************************

Set XE5=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;

Set XE4=C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\bin;C:\Users\Public\Documents\RAD Studio\11.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\bin64;C:\Users\Public\Documents\RAD Studio\11.0\Bpl\Win64;

Set XE3=C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin;C:\Users\Public\Documents\RAD Studio\10.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin64;C:\Users\Public\Documents\RAD Studio\10.0\Bpl\Win64;

Set XE2=C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin;C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin64;C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl\Win64;

Set XE=C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin;C:\Users\Public\Documents\RAD Studio\8.0\Bpl;

Set D2007=C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bin;C:\Users\Public\Documents\RAD Studio\5.0\Bpl;

Set D5=C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin;

Set D2=c:\Delphi2\Delphi20\bin;c:\Delphi2\Delphi20\LIB;

REM TMS ***********************************************************************************

Set TMS=C:\Users\Harry-Dev\Documents\tmssoftware\TMS Component Pack\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Charts\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Spreadgrid\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Cloud Pack\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Scripter\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Diagram Studio\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Pack for FireMonkey\bpl\;D:\Compo\DXE3\FMX\TMS Pack for FireMonkey\bpl\;D:\Compo\DXE5\FMX\TMS Pack for FireMonkey\bpl\;

REM Progs **********************************************************************************
Set CollabNet=C:\Program Files (x86)\CollabNet\Subversion Client;

Set ASys=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;

Set Acronis=C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;

REM Pathes konstruieren *********************************************************************
Set Pathes=%XE5%;%XE4%;%XE3%;%XE2%;%XE%;%D2007%;%D5%;%D2%;%TMS%;%CollabNet%;%ASys%;%Acronis%

REM ******* und Path setzen ******************************************************************
Path %Pathes%

RWarnecke 26. Apr 2014 12:24

AW: Problem mit PATH Variable unter XE5 / XE6
 
Benutze den Befehl Setx. Damit kannst Du Systemvariablen und Benutzervariablen setzen, so als wenn Du es über die Systemeigenschaften oder in der Registry reinschreibst.

Harry Stahl 26. Apr 2014 13:14

AW: Problem mit PATH Variable unter XE5 / XE6
 
Danke für den Tipp.

Allerdings gelingt die Umsetzung dann nur teilweise. Habe zwar schon das Gleichheitszeichen durch ein Leerzeichen ersetzt, aber dennoch kommen dann folgende Hinweise:

Code:
C:\Users\Harry-Dev>Setx D2007 C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bin
;C:\Users\Public\Documents\RAD Studio\5.0\Bpl;
FEHLER: Ungültige Syntax. Die Standardoption darf nicht mehr als 2 Mal verwendet
 werden.
Geben Sie "SETX /?" ein, um die Syntax anzuzeigen.

C:\Users\Harry-Dev>Setx D5 C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin;

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx D2 c:\Delphi2\Delphi20\bin;c:\Delphi2\Delphi20\LIB;

ERFOLGREICH: Angegebener Wert wurde gespeichert.
Manchmal geht es, manchmal nicht. Was mache ich falsch?

Union 26. Apr 2014 13:24

AW: Problem mit PATH Variable unter XE5 / XE6
 
Schließe die Pfade mit " ein, besonders wenn diese Leerzeichen enthalten. Sonst werden die zerhackt bzw. als weitere Parameter angesehen.

Harry Stahl 26. Apr 2014 13:49

AW: Problem mit PATH Variable unter XE5 / XE6
 
Ja, das hilft (außer in einem Fall, vielleicht ist die Zeile zu lang?).

Außerdem irritiert mich, das der Inhalt von %Pathes% anscheinend nicht alle Einträge enthält, wenn man den Wert ECHO abfrägt. Hier die Meldungen:

Code:
C:\Users\Harry-Dev>REM Delphi **************************************************
***************************

C:\Users\Harry-Dev>Setx XE5 "C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\
bin";"C:\Users\Public\Documents\RAD Studio\12.0\Bpl";"C:\Program Files (x86)\Emb
arcadero\RAD Studio\12.0\bin64";"C:\Users\Public\Documents\RAD Studio\12.0\Bpl\W
in64";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx XE4 "C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\
bin";"C:\Users\Public\Documents\RAD Studio\11.0\Bpl";"C:\Program Files (x86)\Emb
arcadero\RAD Studio\11.0\bin64";"C:\Users\Public\Documents\RAD Studio\11.0\Bpl\W
in64";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx XE3 "C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\
bin";"C:\Users\Public\Documents\RAD Studio\10.0\Bpl";"C:\Program Files (x86)\Emb
arcadero\RAD Studio\10.0\bin64";"C:\Users\Public\Documents\RAD Studio\10.0\Bpl\W
in64";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx XE2 "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\b
in";"C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl";"C:\Program Files (x86)\Em
barcadero\RAD Studio\9.0\bin64";"C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl
\Win64";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx XE "C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bi
n";"C:\Users\Public\Documents\RAD Studio\8.0\Bpl";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx D2007 "C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bi
n";"C:\Users\Public\Documents\RAD Studio\5.0\Bpl";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx D5 "C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx D2 "c:\Delphi2\Delphi20\bin;c:\Delphi2\Delphi20\LIB";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>REM TMS *****************************************************
******************************

C:\Users\Harry-Dev>Set TMS "C:\Users\Harry-Dev\Documents\tmssoftware\TMS Compone
nt Pack\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Charts\bpl\
";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Spreadgrid\bpl\";"C:\Us
ers\Harry-Dev\Documents\tmssoftware\TMS Cloud Pack\bpl\";"C:\Users\Harry-Dev\Doc
uments\tmssoftware\TMS Scripter\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\
TMS Diagram Studio\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Pack for
FireMonkey\bpl\";"D:\Compo\DXE3\FMX\TMS Pack for FireMonkey\bpl\";"D:\Compo\DXE5
\FMX\TMS Pack for FireMonkey\bpl\";
Die Umgebungsvariable "TMS "C:\Users\Harry-Dev\Documents\tmssoftware\TMS Compone
nt Pack\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Charts\bpl\
";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Spreadgrid\bpl\";"C:\Us
ers\Harry-Dev\Documents\tmssoftware\TMS Cloud Pack\bpl\";"C:\Users\Harry-Dev\Doc
uments\tmssoftware\TMS Scripter\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\
TMS Diagram Studio\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Pack for
FireMonkey\bpl\";"D:\Compo\DXE3\FMX\TMS Pack for FireMonkey\bpl\";"D:\Compo\DXE5
\FMX\TMS Pack for FireMonkey\bpl\";" ist nicht definiert.

C:\Users\Harry-Dev>REM Progs ***************************************************
*******************************

C:\Users\Harry-Dev>Setx CollabNet "C:\Program Files (x86)\CollabNet\Subversion C
lient";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx ASys C:\Windows\system32;C:\Windows;C:\Windows\System32\
Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>Setx Acronis "C:\Program Files (x86)\Common Files\Acronis\Sna
pAPI\";

ERFOLGREICH: Angegebener Wert wurde gespeichert.

C:\Users\Harry-Dev>REM Pathes konstruieren *************************************
********************************

C:\Users\Harry-Dev>Setx Pathes ;;;;;;C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin;;c:\
Delphi2\Delphi20\bin;c:\Delphi2\Delphi20\LIB;;;;C:\Windows\system32;C:\Windows;C
:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;;

ERFOLGREICH: Angegebener Wert wurde gespeichert.
Und hier die Abfrage von Echo %Pathes%

Code:
C:\Users\Harry-Dev>echo %pathes%
;;;;;;C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin;;c:\Delphi2\Delphi20\bin;c:\Delphi2
\Delphi20\LIB;;;;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Wind
ows\System32\WindowsPowerShell\v1.0\;;
Da fehlen wohl alle Einträge, wo Leerzeichen in den Pfadangaben sind.

Union 26. Apr 2014 13:51

AW: Problem mit PATH Variable unter XE5 / XE6
 
Ja, Du solltest jede einzelne Variable dann auch in doppelte Hochkomma setzen in dieser Zeile:
Code:
Set Pathes=%XE5%;%XE4%;%XE3%;%XE2%;%XE%;%D2007%;%D5%;%D2%;%TMS%;%CollabNet%;%ASys%;%Acronis%

Harry Stahl 26. Apr 2014 14:09

AW: Problem mit PATH Variable unter XE5 / XE6
 
Ja, das hilft, allerdings werden dann nur max. 1024 Zeichen gespeichert ? Oder nur von Echo ausgegeben?

Code:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\Harry-Dev>echo %pathes%
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;;C:\Program Files (x86)\Embarc
adero\RAD Studio\11.0\bin;C:\Users\Public\Documents\RAD Studio\11.0\Bpl;C:\Progr
am Files (x86)\Embarcadero\RAD Studio\11.0\bin64;C:\Users\Public\Documents\RAD S
tudio\11.0\Bpl\Win64;;C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin;C:\
Users\Public\Documents\RAD Studio\10.0\Bpl;C:\Program Files (x86)\Embarcadero\RA
D Studio\10.0\bin64;C:\Users\Public\Documents\RAD Studio\10.0\Bpl\Win64;;C:\Prog
ram Files (x86)\Embarcadero\RAD Studio\9.0\bin;C:\Users\Harry-Dev\Documents\RAD
Studio\9.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin64;C:\Users\
Harry-Dev\Documents\RAD Studio\9.0\Bpl\Win64;;C:\Program Files (x86)\Embarcadero
\RAD Studio\8.0\bin;C:\Users\Public\Documents\RAD Studio\8.0\Bpl;;C:\Program Fil
es (x86)\CodeGear\RAD Studio\5.0\bin;C:\Users\Public\Documents\R

C:\Users\Harry-Dev>
Der Wert steht aber auch in der Registry drin. Das Editfenster der Registry zeigt nicht alle Zeichen an, und auch wenn man den Schlüssel exportiert, sieht man, das nicht alles da ist:

Code:
[HKEY_USERS\S-1-5-21-607686937-1886794736-2999868438-1000\Environment]
"Path"="C:\\Users\\Public\\Documents\\RAD Studio\\9.0\\Bpl;C:\\Users\\Public\\Documents\\RAD Studio\\5.0\\Bpl;C:\\Delphi2\\DELPHI20\\LIB"
"TEMP"="G:\\Work\\Temp"
"TMP"="G:\\Work\\Temp"
"MOZ_PLUGIN_PATH"="C:\\Program Files\\Tracker Software\\PDF Viewer\\Win32\\"
"D5"="C:\\Delphi5\\Projects\\Bpl;C:\\Delphi5\\Bin;"
"D2"="c:\\Delphi2\\Delphi20\\bin;c:\\Delphi2\\Delphi20\\LIB;"
"ASys"="C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;"
"XE5"="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;"
"XE4"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\11.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\11.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\11.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\11.0\\Bpl\\Win64;"
"XE3"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\10.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\10.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\10.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\10.0\\Bpl\\Win64;"

"Pathes"="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;;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\11.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\11.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\11.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\11.0\\Bpl\\Win64;;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\10.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\10.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\10.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\10.0\\Bpl\\Win64;;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\9.0\\bin;C:\\Users\\Harry-Dev\\Documents\\RAD Studio\\9.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\9.0\\bin64;C:\\Users\\Harry-Dev\\Documents\\RAD Studio\\9.0\\Bpl\\Win64;;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\8.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\8.0\\Bpl;;C:\\Program Files (x86)\\CodeGear\\RAD Studio\\5.0\\bin;C:\\Users\\Public\\Documents\\R"

"XE2"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\9.0\\bin;C:\\Users\\Harry-Dev\\Documents\\RAD Studio\\9.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\9.0\\bin64;C:\\Users\\Harry-Dev\\Documents\\RAD Studio\\9.0\\Bpl\\Win64;"
"XE"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\8.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\8.0\\Bpl;"
"D2007"="C:\\Program Files (x86)\\CodeGear\\RAD Studio\\5.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\5.0\\Bpl;"
"CollabNet"="C:\\Program Files (x86)\\CollabNet\\Subversion Client;"
"Acronis"="C:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI\";"

Union 26. Apr 2014 14:25

AW: Problem mit PATH Variable unter XE5 / XE6
 
setx kann nur 1024 byte verarbeiten. Versuche es doch mal alternativ mit Pathed. Das kann zwar nur PATH aber es gibt keine Längenbegrenzung.

Sir Rufo 26. Apr 2014 14:36

AW: Problem mit PATH Variable unter XE5 / XE6
 
Wenn du einer Variablen einen Wert zuweisen willst und dieser Wert ein/mehrere Leerzeichen enthält, dann musst du den Wert in Anführungszeichen setzen
Code:
SET(X) <Varname>="<Value with Spaces>"
Wenn ich dann aber das hier sehe
Code:
Setx XE5 "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";
dann habe ich die Vermutung, dass du das nicht verstanden hast ;)

Denn so wäre es richtig
Code:
Setx XE5 "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;"
Wenn du weiterhin diese dann so zusammenfassen möchtest
Code:
SET(X) <Varname>="%XE5%;%XE4%
Dann macht das Semikolon am Ende bei der Wertzuweisung von XE5 irgendwie keinen Sinn. Macht nichts kaputt, sieht aber doof aus und ist eben überflüssig

Harry Stahl 26. Apr 2014 14:45

AW: Problem mit PATH Variable unter XE5 / XE6
 
Da gibt es zudem noch einen Environment-Editor. Dabei prüft der auch, ob bestimmte Pfade auch überhaupt existieren, das ist schon mal nicht schlecht, habe direkt ein paar nicht mehr existierende Pfade eleminieren können. Deswegen ging wohl auch das Setzen der TMS-Variable nicht, weil dort ein nicht mehr existenter Path drin war.

Harry Stahl 26. Apr 2014 15:12

AW: Problem mit PATH Variable unter XE5 / XE6
 
Pathed kommt aber auch nicht mit Leerzeichen im Path zurecht, die er z.B. über %XE5% erhält (auch wenn in doppelten Anführungszeichen). Man kann wohl auch immer nur einen Pfad anhängen.

Harry Stahl 26. Apr 2014 16:40

AW: Problem mit PATH Variable unter XE5 / XE6
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also, ich habe das jetzt so für mich gelöst, dass ich die Einträge nun manuell in die Registry reinnehme, wie in der Anlage ersichtlich.

Wenn ich in einer DOS-Shell die Werte dann abfrage, sieht das so aus (alle Einträge sind vorhanden):

Code:

C:\Users\Harry-Dev>echo %pathes%
%XE5%;%XE4%;%XE3%;%XE2%;%XE%;%D2007%;%D5%;%D2%;%TMS%;%CollabNet%;%ASys%;%Acronis
%

C:\Users\Harry-Dev>echo %path%
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;C:\Program Files (x86)\Embarca
dero\RAD Studio\11.0\bin;C:\Users\Public\Documents\RAD Studio\11.0\Bpl;C:\Progra
m Files (x86)\Embarcadero\RAD Studio\11.0\bin64;C:\Users\Public\Documents\RAD St
udio\11.0\Bpl\Win64;C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin;C:\Us
ers\Public\Documents\RAD Studio\10.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD
Studio\10.0\bin64;C:\Users\Public\Documents\RAD Studio\10.0\Bpl\Win64;C:\Delphi5
\Projects\Bpl;C:\Delphi5\Bin;C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\b
in;C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl;C:\Program Files (x86)\Embarc
adero\RAD Studio\9.0\bin64;C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl\Win64
;C:\Program Files (x86)\CollabNet\Subversion Client;C:\Program Files (x86)\Embar
cadero\RAD Studio\8.0\bin;C:\Users\Public\Documents\RAD Studio\8.0\Bpl;C:\Progra
m Files (x86)\CodeGear\RAD Studio\5.0\bin;C:\Users\Public\Documents\RAD Studio\5
.0\Bpl;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System
32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;
C:\Users\Harry-Dev\Documents\tmssoftware\TMS Component Pack\bpl\;C:\Users\Harry-
Dev\Documents\tmssoftware\TMS Advanced Charts\bpl\;C:\Users\Harry-Dev\Documents\
tmssoftware\TMS Advanced Spreadgrid\bpl\;c:\Delphi2\Delphi20\LIB;C:\Users\Harry-
Dev\Documents\tmssoftware\TMS Cloud Pack\bpl\;C:\Users\Harry-Dev\Documents\tmsso
ftware\TMS Scripter\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Diagram St
udio\bpl\;D:\Compo\DXE3\FMX\TMS Pack for FireMonkey\bpl\;D:\Compo\DXE5\FMX\TMS P
ack for FireMonkey\bpl\;%Pathes%

C:\Users\Harry-Dev>
Was auffällt ist, dass am Ende der Path-Abfrage nochmal "%Pathes%" steht, also eigentlich irgendwie doppelt oder?

Was mir auch noch nicht ganz klar ist: Sollte ich diese Einträge hier für den aktuellen User machen, oder besser in der Path-Variable in

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Environment

Welche Bedeutungen haben eigentlich in Delphi der Environment-Dialog. Da haben wir ja einmal die Anzeige für die System-Variablen, wo offensichtlich die des aktuellen Users angezeigt werden.

Dann gibt es noch die Liste "Vom Anwender überschrieben". Dort steht aber in jedem Delphi (also z.B. 2007, XE, XE5) jeweils etwas anderes drin. Mir ist insofern nicht klar, was passiert, wenn ich in dem Delphi Dialog eine Aktion "überschreiben" vornehme.

Sir Rufo 26. Apr 2014 16:53

AW: Problem mit PATH Variable unter XE5 / XE6
 
Hmmm, wenn du dir den Eintrag in
Code:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path
und
Code:
HKCU\Environment\Path
anschaust, dann sollte dir doch eigentlich auffallen, dass diese beiden Einträge kombiniert werden und als resultierendes Ergebnis für die Umgebungsvariable %PATH% genommen wird.

Wie du das jetzt verwendest ist ja egal, ich persönlich würde das global eintragen, da auch die Programme diese Pfade global eingetragen haben.

Harry Stahl 26. Apr 2014 17:40

AW: Problem mit PATH Variable unter XE5 / XE6
 
Oh, dann frage ich mich, ob der Wert %Pathes% überhaupt funktioniert.

Werde ich gleich mal austesten. Jedenfalls hatte ich Sebastian so verstanden, der weiter hier in diesem Beitrag sagte, dass "er sofort sehen würde, wenn sich an dem Eintrag etwas ändern würde". Daher ging ich davon aus, er meinte einen solchen Eintrag (in der Registry).

jaenicke 26. Apr 2014 20:24

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

Zitat von Harry Stahl (Beitrag 1257110)
Jedenfalls hatte ich Sebastian so verstanden, der weiter hier in diesem Beitrag sagte, dass "er sofort sehen würde, wenn sich an dem Eintrag etwas ändern würde".

Ich zeige den Wert der Variablen PATH auf dem Desktop als Text auf dem Hintergrundbild an. ;-)

DateTimeError 26. Apr 2014 21:42

AW: Problem mit PATH Variable unter XE5 / XE6
 
Was ist denn aus dem guten alten CMD mit Ausgabeumleitung geworden?

Kommandozeile starten und dann

Delphi-Quellcode:
path > D:\pfad.txt
eintippen.

Harry Stahl 27. Apr 2014 11:23

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

Zitat von jaenicke (Beitrag 1257122)
Jedenfalls Ich zeige den Wert der Variablen PATH auf dem Desktop als Text auf dem Hintergrundbild an. ;-)

Interessant. Benutzt Du dafür eine fertige / freie Anwendung, oder hast Du da selber etwas gebastelt? Und wie macht Du das mit den Einträgen in die Registry? Selber editieren oder auch mit einer Batch-Datei?

Uwe Raabe 27. Apr 2014 11:53

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

Zitat von Harry Stahl (Beitrag 1257162)
Zitat:

Zitat von jaenicke (Beitrag 1257122)
Jedenfalls Ich zeige den Wert der Variablen PATH auf dem Desktop als Text auf dem Hintergrundbild an. ;-)

Interessant. Benutzt Du dafür eine fertige / freie Anwendung, oder hast Du da selber etwas gebastelt? Und wie macht Du das mit den Einträgen in die Registry? Selber editieren oder auch mit einer Batch-Datei?

Vielleicht dies: BgInfo

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 06:37 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