J�rg Tewes <[EMAIL PROTECTED]> wrote on 27.02.04:

> Donnerstag, 26.02.04 Michael Heydekamp schrub...

>> J�rg Tewes <[EMAIL PROTECTED]> wrote on 25.02.04:

>>> Ich habe gerade mal C/X/S bei FreeXP aktiviert und da wird der
>>> COMMAND.COM im falschen Verzeichnis gesucht. FreeXP sucht den
>>> COMMAND.COM in C:\WINNT\System32, XP2 in C:\WINXP\System32.

>> Na super, dann haben wir schon mal die offensichtliche Ursache.
>> Jetzt m�ssen wir nur noch herausfinden, wieso in C:\WINNT\System32
>> gesucht wird.

>> N�chster Schritt: Wirf mal bitte Deine komplette Ausgabe von "set"
>> r�ber (am besten die aus CMD *und* COMMAND).

> Kommt

> CMD.EXE

[...]

> COMMAND.COM

[...]

Hmm, nix mit "WINNT" zu sehen.  Trotzdem mu�t Du es ja irgendwie
hinbekommen haben, FreeXP vorzugaukeln, Dein COMMAND.COM bef�nde sich in
C:\WINNT\System32.  Irgendwo in den Eigenschaften einer PIF-Datei
vielleicht (evtl. kopiert von einem fr�heren System)?  Befehl in 'ner
Batch oder irgendwas in der Richtung?

Jedenfalls habe ich den Code durchforstet, an keiner einzigen Stelle
wird fest verdrahtet auf das Verzeichnis "WINNT" gepr�ft.

Aber dabei habe ich etwas ganz anderes gefunden, was im Zusammenhang mit
dem Aufruf externer Programme unter Windows ganz interessant ist
(xp1o.pas, XPWinShell):

----------8<----------
[...]

    winnt:=win and (lstr(getenv('OS'))='windows_nt');

[...]

        if winnt then
          prog:='cmd /c start cmd /c '+batfile
          else prog:='start command /c '+batfile
        end;

[...]
----------8<----------

Aha...???  Da haben wir doch bereits den ber�hmten Start von CMD.EXE,
der offenbar dann ausgef�hrt wird, wenn die Umgebungsvariable "OS" den
Wert "Windows_NT" hat.  Und siehe da:

> OS=Windows_NT

Das ist bei Dir (und vermutlich allen anderen Win2K/XP-Usern) der Fall.

Wann allerdings die "WinXPShell" Routine �berhaupt benutzt wird, das mu�
man sich nochmal genauer ansehen.

Der Code ist BTW genau so auch in XP2 drin (nicht aber in der originalen
3.20 von Peter, wenn ich nix �bersehen habe).

>>> Letzteres ist das Verzeichnis was �ber %SYSTEMROOT% zu finden ist,
>>> ersteres ist das Standardverzeichnis unter WinNT und W2k, aber
>>> nicht bei WinXP. Es scheint das FreeXP hier nicht die Systemroot
>>> Variable auswertet

>> Gerade XP2 wertet die garantiert nicht aus, das wei� gar nix von
>> WinNT und Konsorten.

> Stimmt fiel mir kurz nach abschicken auch auf.

Bzgl. %SYSTEMROOT% stimmt das zwar, aber siehe oben.

Xpost & f'up2 c.f.d


        Michael
------------------------------------------------------------------------
FreeXP Entwickler-Mailingliste
[EMAIL PROTECTED]
http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list

Antwort per Email an