![]() |
Umgebungsvariable wird nicht genutzt
Hallo,
ich habe ein Problem mit Delphi 11.3 Prof. Ich arbeite ohne Admin-Rechte. Wenn ich im Umgebungsblock eine Systemvariable festlege, erscheint diese nicht im Programm (getestet mit shellexecute cmd.exe) Auch wenn ich eine andere Host-Anwendung definiere, wird diese nicht genutzt (man kann z.B. spaßeshalber den Windows-Taschenrechner eintragen (calc.exe), es wird trotzdem das Delphi-Programm gestartet). Wenn ich dasselbe in einem Account mit Admin-Rechten mache, funktioniert beides. Hat irgendjemand eine Idee, woran das liegen könnte und wie ich das reparieren kann? |
AW: Umgebungsvariable wird nicht genutzt
Rechner neu gestartet?
|
AW: Umgebungsvariable wird nicht genutzt
ja. Das bringt aber nichts.
In/an Delphi wurde nichts neu installiert. Ich kann zwischen meinen beiden Accounts umschalten, im Account mit Admin-Rechten läuft alles so wie es soll, ohne Adminrechte werden Umgebungsvariablen und Host-Anwendung ignoriert. |
AW: Umgebungsvariable wird nicht genutzt
Ist zwar nur aus der Hüfte geschossen, aber könnte es sein, dass jedes Konto seine eigenen Umgebungsvariablen hat? Prüf das mal in deinem normalen Konto.
Rufe zuerst CMD.EXE auf, oder die Eingabeaufforderung. Gib dann PATH ein Prüfe ob in der "Liste" auch dein Pfad ist. Falls das zu schwer zu lesen ist, kopiere den Text in der Eingabeaufforderung (Markieren und dann Enter). Füge den Text dann in Word ein. Wähle dann Ersetzen. Suche nach ; (Semikolon) und ersetze das durch ^p (Absatzmarke). Dann kann man es vernünftig lesen. |
AW: Umgebungsvariable wird nicht genutzt
Mit Umgebungsblock meinst du den in den Debugger-Projekt-Optionen?
Was machst du denn dort genau? Kannst du das mal zeigen? |
AW: Umgebungsvariable wird nicht genutzt
Programme bekommen den Environmentblock vom startenden Programm.
z.B. eine Kopie des Blocks der Delphi-IDE, wenn aus Delphi gestartet. Und so lange die Programme laufen, aktualisiert er sich auch nicht automatisch. Standardmösung: Programm und notfalls auch Windows neu starten. Hostanwendung: Ja, eine EXE mit anderem Programm starten, geht irgendwie nicht. (bei mir letztens auch nicht) DLL oder BPL da ja. Bei mir war es, dass der Compiler es in ein anderes Verzeichnis kompilert (Ausgabepfad), die EXE im AfterBuildScript umkopiert wird und das dann von dort starten sollte. (selbe EXE aber anderer Pfad, aber prinzipiell egal) |
AW: Umgebungsvariable wird nicht genutzt
Liste der Anhänge anzeigen (Anzahl: 2)
Ich hab diverses probiert. Es hat nichts mit Admin-Rechten zu tun.
Es geht konkret um eine Datenbankanwendung für Oracle. Hier muss ORACLE_HOME gesetzt werden. Offenbar kommt Delphi bei Plattform "Windows 64" mit den Umgebungsvariablen/Systemvariablen nicht zurecht. Mit Plattform "Window 32" funktioniert eine Build- und System-Abhängige Variable. Hier werden auch die vorhandenen Umgebungsvariablen angezeigt. Für Plattform "Windows 64" funktioniert das nicht, auch der Block darüber mit den vorhandenen Umgebungsvariablen ist leer. Als Notbehelf habe ich jetzt die OS-Umgebungsvariable "ORACLE_HOME" für den 64-Bit-Oracle-Client festgesetzt, und für Plattform "Window 32" in Delphi als Systemvariable für einen 32-Bit-Oracle-Client. Damit funktioniert es zumindest. Ich glaube mich zu erinnern, dass Matthias Eißing erwähnt hatte, dass hier noch ein Bug sei? |
AW: Umgebungsvariable wird nicht genutzt
Also die Systemvariablen sollten eigentlich überall vorhanden sein. :gruebel:
Die "Benutzerüberschiebenen" werden nur über die Session durchgereicht. PS: Es gibt auch noch Tools -> Optionen -> IDE -> Umgebungsvariablen (welche die Delphi-IDE bekommt und welche "normal" auch an davon gestartete Programme durchgereicht werden) Also für 32 Bit Programme geht es eigentlich. Bei 64 Bit Programmen läuft im Hintergrund der RemoteDebugger und Jener startet dann das gewnschte Programm. (also gibt er dann auch sein Environment weiter und nicht direkt das er IDE) Beim CreateProcess können auch optional via lpEnvironment "eigene" Umgebungsvariablen reingegeben werden. (was Delphi hier auch intern bestimmt nutzt) und dafür sollte es vorher auch die Systemumgebungsvariablen, oder seine Eigenen, auslesen, da dann die Änderungen vornehmen (z.B. Neues hinzufügen oder überschreiben) Da scheint es wohl im Delphi einen Bug zu geben. Hier wird für Win64 auch nichts angezeigt. Als eingeschränkter Admin (UAC), aber auch als einfacher "Benutzer". (als Admin jetzt nicht ausprobiert, da ich dafür aktuell keine Lizenz hier zur Verfügung haben) Lösung: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 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