Enviroment-Variablen von PB sind "weg"

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Enviroment-Variablen von PB sind "weg"

Beitrag von Franky »

Hi Leute, ich hab n problem

Ich hab vorhin den Beispielcode für Environment-Variablen gestartet

Code: Alles auswählen

  ; Wird alle Umgebungsvariablen des Programms ausgeben
  ;
  OpenConsole()
  If ExamineEnvironmentVariables()
    While NextEnvironmentVariable()
      PrintN(EnvironmentVariableName() + " = " + EnvironmentVariableValue())
    Wend
  EndIf
  PrintN("")
  PrintN("Druecken Sie Enter zum Beenden.")
  Input() 
Damals war der Output noch korrekt, die PB-IDE-Variablen waren da.

Hab dann etwas programmiert, um die Variable "PB_TOOL_IDE" direkt an zu sprechen. Komischerweise war der Wert leer :freak:
Ich hab den Namen kopiert, zum schluss sogar die ganze Zeile, aber die Variable blieb leer. Tja, und dann hab ich obigen Code nochmal gestartet und siehe da, die Variablen waren weg.

Also IDE zu, IDE neustarten, code versuchen -> Weg
Also Rechner runter, Rechner hoch, code versuchen ->Weg
Also PB überinstalliert, code versuchen ->Weg
Also Rechner Runter, Rechner hoch, code versuchen ->Weg
Also PB deinstalliert und neu installiert, code versuchen -> Weg


Ich bin so langsam mit meinem Latein am Ende, weiß wer, was ich falsch mache oder kann mir irgend einen Tipp geben? :roll:
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Franky
>Enviroment-Variablen von PB sind "weg"
Von PB? Das hat doch nichts mit PB zu tun, eher Windows.
Bei mir zeigt er alle Enviroment-Variablen korrekt an.
Vielleicht sind deine Enviroment-Variablen nicht mehr verfügbar?
sysdm.cpl > Erweitert > Umgebungsvariablen
Werden da ein paar Variablen angezeigt oder ist die Liste leer?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Die Environment-Variablen werden von Process zu Process vererbt. Also
in der IDE erbt das compilierte Programm von dieser. Ausserhalb natürlich
nicht. Jedoch als Plugin funktioniert es wieder, das Erbe wird überreicht :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Habe deinen Code direkt kompiliert (F5) und es geht NICHT.
Es geht nur, wenn du dein Tool als externes Werkzeug von der IDE starten lässt.
Habe auch das probiert, indem ich deinen Code als EXE kompiliert und als Werkzeug von der IDE hab starten lassen. Und siehe da, es geht.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Etwas verständlicher ausgedrückt:
Ich starte eine Exe im Explorer, so erbt diese alle EnvironmentVariablen des
System (%AppData% usw.)
Ich definiere eine EnvironVariable und starte z.B. mit Run Programm eine
blub.exe, so wird diese meine definierte Environmentvariable + die des
Systems kennen. Definiert diese wieder eine EV, wird diese dann auch
weitervererbt, aber eben niemals rückwärts :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Ah, jo, danke :)

Is ja ne Sache, die man erstmal wissen muss, danke, waren meine ersten Versuche mit eben diesen Variablen ;)

Gut, jetzt wird das debugging wieder wat schwerer, zumal was die Variablen alla PB_TOOL_MainWindow angeht, aber ich werds wohl hinkriegen
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Beitrag von marco2007 »

Wenn ich F5 drücke, dann erhalte ich eine Liste mit einigen vordefinierten Variablen + Werte. Soll bei Windows eigentlich auch so sein, oder nicht?
Windows setzt ja irgendwann (wahrscheinlich beim Systemstart) einige Umgebungsvariablen.
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

marco2006 hat geschrieben:Wenn ich F5 drücke, dann erhalte ich eine Liste mit einigen vordefinierten Variablen + Werte. Soll bei Windows eigentlich auch so sein, oder nicht?
Unter welchem OS drückste F5 ?
marco2006 hat geschrieben: Windows setzt ja irgendwann (wahrscheinlich beim Systemstart) einige Umgebungsvariablen.
Die stehen in der Registry und diese wird beim Systemstart in den Speicher
geladen :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Beitrag von marco2007 »

1) XP SP3
2) Jup - aha, Registry - Danke!
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Das mit dem Weitervererben wusste ich so gar nicht. Das ist ja wirklich
praktisch. 8) Ist das unter jedem Betriebssystem so?

Was passiert mit den Umgebungsvariablen in dem zweiten Programm, wenn
das erste Programm, das ja das erste gestartet hat, beendet wird? Zum
Beispiel kann ich ja eine mit FireFox heruntergeladene EXE-Datei direkt aus
FireFox starten und FireFox dann aber beenden. Stehen die
Umgebungsvariablen, die FireFox hätte mitgeben können, noch in der
gestarteten EXE zur Verfügung?
Antworten