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