Announcement

Collapse
No announcement yet.

temporäre Umgebungsvar. (Environments) gehen mir bei Win95 ab!!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • temporäre Umgebungsvar. (Environments) gehen mir bei Win95 ab!!

    Hallo miteinander,

    Ich habe ein ziemliches Problem.
    Und zwar habe ich eine App programmiert, die zur Laufzeit ihre Umgebungsvar. erweitert (no problem). Dann starte ich aus dieser
    App heraus andere Apps, welche diese erweiterten Umgebungsvariablen erben sollen.

    Und zwar so:
    var
    SI: TStartupInfo;
    PI: TProcessInformation;
    begin
    SetEnvironmentVariable(PChar('var'), PChar('value'));
    FillChar(SI, SizeOf(SI), 0);
    SI.cb := SizeOf(SI);
    ...
    CreateProcess(nil, PChar('prog'), nil, nil, True, NORMAL_PRIORITY_CLASS, nil, 'run dir', SI, PI);
    ...
    end;

    Unter Win-NT läuft das alles super, aber jetzt kommt das Problem!
    Unter Win95 übernimmt der Child-Prozess die Environments nicht, obwohl das lt. API-Hilfe für alle Win-Betriebssysteme funktionieren sollte. :-(

    Was ist der Trick bei Win95? Wer kann helfen?
    Bye, Ingolf Pietschmann

  • #2
    Das Problem kommt mir bekannt vor.<p>
    Ich habe es seiner-zeit dadurch gelöst, das ich mir mit <b>GetEnvironmentStrings</b> den eigenen Umgebungsvariablen-Block geholt habe, und die neuen Variablen zu Fuß hinzugefügt habe. (Macht nur ne Menge Arbeit, da die Einträger per definitionem alphabetisch sortiert sein müssen).<p>
    Bei Tests hatte ich das letzte mal festgestellt, das es eigentlich reichen sollte, wenn man sich den aktuellen Block holt und explizit beim Aufruf mit CreateProcess angibt (um genau zu sein, war in obiger Routine natürlich ein Prüfung, ob die Variable nicht schon vorhanden ist).<p>

    Gruß Nico

    PS: Ich habe mich damals nicht weiter darum gekümmert, da die Programme in absehbarer Zeit eh' nicht mehr 9x unterstüzen sollten

    Comment


    • #3
      Hi Leute,

      ich bin jetzt doch nach aufwendigen, aber wenig ergiebigen Recherchen bei Microsoft fündig geworden. Unter
      http://support.microsoft.com/support/kb/articles/Q102/9/58.ASP
      gibt Microsoft ein Statement ab.

      Sinngemäß steht da:
      Win95 unterstützt die Weitergabe von modifizierten Envionment-Variablen nicht. Wenn man das aber trotzdem braucht, so soll man doch bitte eine Batchdatei nehmen.

      Und ich mach das jetzt auch so.
      Meine Eltern-Applikation schreibt dynamisch ein Batchfile mit den ganzen set-Commands, dem Aufruf-Command für die Dos-App. und einem kleinen exit-Command. Das ist zwar umständlich, funktioniert aber wenigstens.

      Soviel dazu, damit keiner mehr bei Win95 im Regen steht.

      Gruß Ingolf

      Comment

      Working...
      X