Sonntag, 29.02.04 Michael Heydekamp schrub...

Hi!

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

>> Kann ich nicht finden das das jemand gesagt hat.

> MID: [EMAIL PROTECTED]
>
> Der Einfachheit zitiere ich mal (Quote etwas komplettiert, damit
> erkennbar ist, da� es in der Tat um COMMAND.COM ging, Quote
> Initials erg�nzt):
>
> ----------8<----------
MH>>> Wo ist denn dieses Ger�mpel eigentlich mal dokumentiert?  Wenn
MH>>> ich es recht erinnere, unterst�tzt der COMMAND von Win2K/XP im
MH>>> Unterschied zu dem von Win9x ja schonmal keine LFNs.  Dann
MH>>> kennt er den Befehl "start" nicht

HJT>> Doch durchaus: ein
>     ^^^^ ^^^^^^^^
HJT>> system("start /w cmd.exe")

HJT>> funktioniert (system ist hier im Beispiel eine C-Funktion, die
HJT>> den Commandointerpreter zur Ausf�hrung aufruft. Wie die
HJT>> entsprechende Funktion bei BP heisst, entzieht sich meiner
HJT>> Kenntnis).
> ----------8<----------
>
> Um diese Aussage ging's dabei die ganze Zeit.

Stimmt das "Doch durchaus" deutet an das Start ein interner Befehl des  
command.com ist. Dem ist aber nicht so.

> In <[EMAIL PROTECTED]> stand dann
> folgerichtig noch:
>
> ----------8<----------
HJT>> hier meinst Du vermutlich, da� start nicht funktioniert, wenn
HJT>> start xyz �ber eine Funktionstaste aus FreeXP heraus aufgerufen
HJT>> wird? Wenn ja, dann stimmt das (start funktioniert nicht). Aber
HJT>> nicht desshalb, weil command.com damit nichts anzufangen
HJT>> w�sste,
>  [...]
> ----------8<----------
>
> Auch hier (noch) die Position, da� das Nicht-Funktionieren *nicht*
> damit zusammenh�nge, da� COMMAND.COM "start" nicht kenne.

Dem ist aber so. Hier die Ausgabe von command.com/? unter W2k/XP

C:\XPOINT>command/com /?
Startet eine neue Kopie des MS-DOS-Befehlsinterpreters.

COMMAND [[Laufwerk:]Pfad] [Ger�t] [/E:nnnnn] [/P] [/C Befehl [/MSG]

 [Laufwerk:]Pfad Bezeichnet das Verzeichnis mit der Datei COMMAND.COM.
 Ger�t           Ger�t f�r die Ein- und Ausgabe des Befehlsprozessors.
 /E:nnnnn        Stellt die anf�ngliche Umgebungsgr��e auf nnnnn Bytes ein.
 /P              Macht den neuen Befehlsinterpreter permanent (nicht beendbar).
 /C Befehl       F�hrt den Befehl in Zeichenkette aus und endet dann.
 /MSG            Alle Fehlermeldungen werden im Arbeitsspeicher gehalten
                 (nur zusammen mit der Option /P verwendbar).

Kein start dabei. Im Gegensatz zu CMD.EXE/?

Startet eine neue Instanz des Windows 2000-Befehlsinterpreters.

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] Zeichenfolge]

Ich k�rze mal auf das Notwendigste.

[...]

/E:ON   Aktiviert Befehlserweiterungen (siehe unten).
/E:OFF  Deaktiviert Befehlserweiterungen (siehe unten).

Und unten steht...

Folgende Befehle wurden durch die Befehlserweiterungen ge�ndert bzw. erweitert:

[...]

    START (umfasst auch �nderungen an externen Befehlsaufrufen)

Man mu� also die Befehlserweiterungen aktiviert haben damit Start  
verf�gbar ist. Ich meine bei W2k war das standardm��ig deaktiviert.

> So, ich hoffe, das reicht. :)  Inzwischen ist HJT ja auch wieder
> etwas zur�ckgerudert und es ging mir jetzt auch nicht darum, etwas
> zu beweisen, sondern nur nochmal die Zusammenh�nge von Aussagen,
> die durch verk�rzte Quotes inzwischen verlorengegangen waren, zu
> verdeutlichen, weil die Dir offenbar auch nicht pr�sent waren.

Nein so waren sie nicht present.

>> Das Problem mit der Verwirrung ist das halt einige ihre
>> Eingabeaufforderung mit den Standardparametern aufrufen und da
>> wird dann der command.com geladen. Das wollte ich nicht und hab
>> von ANfang an nur den NTCMDPROMPT in W2k/XP aktiviert gehabt. In
>> der Beziehung bin ich also nicht ganz so verwirrt. :-))

> Nein, das meinte ich nicht mit Verwirrung, sondern das Verhalten
> von Win2K/XP ist an sich verwirrend und schwer zu durchschauen.  Du
> wirst ja mitbekommen haben, da� HJT inzwischen entdeckt hat, da�
> manche Befehle nur deswegen funktionieren, weil COMMAND wiederum
> CMD aufruft.

Jepp, hab ich mitgekriegt.

>>> Erstmal bin ich noch nicht sicher, ob das so ist (da� die
>>> COMSPEC- Variable irrelevant ist, der Code sagt n�mlich was
>>> anderes).

>> Dann kommt der Aufruf von anderer Stelle im Code.

> Aha?  Und wo? ;)

Keine Ahnung ich habe den Code noch nicht gesehen. Obiges war eine  
Annahme.


>> Wenn ich hier CMD.EXE spezielle Befehle (wie z.B. start) �ber
>> Shift- F1, oder eine beliebige andere Funktionstaste, aufrufe
>> funktionierts nicht, schreibe ich CMD.EXE /C davor klappts sofort.

> Das beweist aber doch nicht, da� XP sich nicht f�r COMSPEC
> interessiert. Was in dem Moment, wo XP ein externes Programm �ber
> eine Funktionstaste aufruft, vom Betriebssystem als COMSPEC
> geliefert wird, kannst Du doch gar nicht sehen.

Doch indem ich vor den Aufruf echo %compsec% einf�ge.

> Du siehst nur das, was nach <F9> COMSPEC ist, aber das mu� nicht
> identisch sein.

> In jedem Fall unterliegt es nicht dem Einflu� von XP.  Um wirklich
> sehen zu k�nnen, welchen Inhalt COMSPEC hat, m��test Du das
> debuggen (oder eine Debug-Version compilieren, die Dir den Inhalt
> zur Laufzeit ausgibt).

>> Ja habe ich gelesen, aber entweder hat HJT sich da falsch
>> ausgedr�ckt oder du hast ihn falsch verstanden.

> Dann erz�hl mal, wie Du das obige verstanden hast.  HJT zumindest
> hat sich nicht in der Richtung ge�u�ert, falsch verstanden worden
> zu sein.

Siehe oben.


        Und Tsch�ss J�rg

-- 
Letzte Woche hatte er noch Erektionsst�rungen.
------------------------------------------------------------------------
FreeXP Entwickler-Mailingliste
[EMAIL PROTECTED]
http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list

Antwort per Email an