Seite 1 von 2
Eingabeaufforderung ansprechen
Verfasst: 01.08.2009 16:52
von Joel
Wie kann ich die Eingabeaufforderung (cmd.exe) ansprechen. Also an den cmd z.B. shutdown senden.
Mein versuch klappt leider nicht:
Verfasst: 01.08.2009 16:59
von TomS
Shutdown erwartet ja auch Parameter. Außerdem ist es ein eigenständigs Programm.
Code: Alles auswählen
RunProgram("shutdown.exe", "-i", "C:\Windows", 0, 0) ; -i
;Zeigt eine grafische Benutzeroberfläche an (muss die erste Option sein).
EDIT:
Für jeden beliebigen Befehl muss
/k übergeben werden.
Oder
/c. Dann schließt sich die Console.
Code: Alles auswählen
RunProgram("cmd.exe", "/k color 0b", "C:\Windows", 0, 0)
Code: Alles auswählen
RunProgram("cmd.exe", "/c shutdown -i", "C:\Windows", 0, 0)
Verfasst: 01.08.2009 17:07
von Joel
Und was ist, wenn ich ind er Eingabeaufforderung ein Programm anspreche, das nicht wie shutdown.exe eigenständig ist?
Verfasst: 01.08.2009 17:09
von TomS
Hab's gerade gefunden^^ (s.o)
Verfasst: 01.08.2009 17:17
von ts-soft
Joel hat geschrieben:Und was ist, wenn ich ind er Eingabeaufforderung ein Programm anspreche, das nicht wie shutdown.exe eigenständig ist?
Code: Alles auswählen
ImportC "msvcrt.lib"
system(cmd.p-ascii)
EndImport
OpenConsole()
System("dir c:")
System("pause")
Verfasst: 01.08.2009 17:23
von TomS
ts-soft hat geschrieben:Joel hat geschrieben:Und was ist, wenn ich ind er Eingabeaufforderung ein Programm anspreche, das nicht wie shutdown.exe eigenständig ist?
Code: Alles auswählen
ImportC "msvcrt.lib"
system(cmd.p-ascii)
EndImport
OpenConsole()
System("dir c:")
System("pause")
Code: Alles auswählen
RunProgram("cmd.exe", "/c color f9 & dir C: & pause ", "C:\Windows", 0, 0)
Was davon jetzt besser ist, weiß ich nicht. Kannst ja dann selber entscheiden.
Oder irgendjemand, der sich mit Windows auskennt, macht meine Methode nieder :P
Verfasst: 01.08.2009 17:42
von ts-soft
TomS hat geschrieben:
Code: Alles auswählen
RunProgram("cmd.exe", "/c color f9 & dir C: & pause ", "C:\Windows", 0, 0)
Was davon jetzt besser ist, weiß ich nicht. Kannst ja dann selber entscheiden.
Oder irgendjemand, der sich mit Windows auskennt, macht meine Methode nieder :P
Besser so:
Code: Alles auswählen
RunProgram(GetEnvironmentVariable("COMSPEC"), "/c color f9 & dir C: & pause ", "C:\Windows", 0, 0)

Verfasst: 01.08.2009 17:56
von TomS
>Besser so:
Für den Fall, dass jemand seine cmd.exe umbenannt hat, oder System32 nicht in der Path-Variable steht, oder was?
Verfasst: 01.08.2009 18:01
von X360 Andy
Und wieso sollte man die cmd.exe umbennen ?
damit zerstört man doch ein teil des Systems....
Verfasst: 01.08.2009 18:09
von ts-soft
TomS hat geschrieben:>Besser so:
Für den Fall, dass jemand seine cmd.exe umbenannt hat, oder System32 nicht in der Path-Variable steht, oder was?
Für den Fall das jemand eine ältere Windows-Version nutzt und cmd.exe
command.com heißt
Man sollte grundsätzlich solche Dinge per API ermitteln, es läßt sich nämlich
fast alles ändern und umgenannte cmd.exe zur Erhöhung der Sicherheit sind
keine Seltenheit!