Seite 1 von 2

Enviroment-Variablen von PB sind "weg"

Verfasst: 22.07.2008 15:56
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:

Verfasst: 22.07.2008 16:11
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?

Verfasst: 22.07.2008 16:12
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:

Verfasst: 22.07.2008 16:12
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.

Verfasst: 22.07.2008 16:20
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:

Verfasst: 22.07.2008 16:23
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

Verfasst: 22.07.2008 19:14
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.

Verfasst: 22.07.2008 19:20
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:

Verfasst: 22.07.2008 19:21
von marco2007
1) XP SP3
2) Jup - aha, Registry - Danke!

Verfasst: 22.07.2008 19:23
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?