Ein bisschen mit Shell rumspielen?
-
Hi

alles was ich im Netz zu diesem Thema gefunden hab ist ShellExecute, aber das scheint nur für Dateien zu gehen, ich möchte im Shell
sachen ausführen wie:Ping google.de V: mkdir Hallo exitIch suche keine möglichkeit diese Probleme in C++ zu umschreiben sondern nur einen Weg sie direkt im shell auszuführen.
Außerdem noch eine Zweite Frage anbei:
Wenn ich WindowsShutdownEx ausführe zeigt mein Debugger immer an
"PRIVILEGE_NOT_HELD"
und nix geschieht
Mit freundlichen Grüßen

-
winapi?
odershell(ping www.google.de);
-
äh so
shell("ping www.google.de");
-
was bist du schrieb:
äh so
shell("ping www.google.de");In welchem Header oder welcher API ist das denn überhaupt?
-
Du könntest auch system verwenden aus der Header cstdlib:
#include <cstdlib> int main() { system("ping www.google.de"); }Greetz
-
Vellas schrieb:
Du könntest auch system verwenden aus der Header cstdlib:
#include <cstdlib> int main() { system("ping www.google.de"); }Greetz
Vielen Dank das klappt,
für alle anderen, ihr bekommt dann das in euer Programm:004113B0 . 68 3C564100 PUSH Shell-Ex.0041563C ; /command = "ping www.google.de" 004113B5 . FF15 B8824100 CALL DWORD PTR DS:[<&MSVCR80D.system>] ; \system
Hat mir echt weitergeholfen!
-
Hallo,
es hat sich leider nochmal eine Frage in diesem Thema aufgetan, weil ich gerne zusammenhängende Befehle an die Konsole senden will:system("CD c:\myapplication"); system("MKDIR test");Ich weiß, dass man das in diesem Fall mit
system("c:\myapplication\MKDIR test");"umgehen könnte" aber ich möchte es auch wegen anderen Problemen in eine zusammenhängende Shell-Konsole einfügen...
Weil bis jetzt würde er erstmal einen Shell öffnen und dann "CD c:\myapplication"
ausführen, den Shell schließen und dann in dem aktuellen ordner den ordner test erstellen. Statt im Ordner C:\myapplication!Ich hoffe ihr konntet mir soweit folgen

Danke schonmal,
greetings
-
Hallo,
zumindest unter XP kannst du Befehle schlicht mit && verketten. Sprich:
system("CD c:\\myapplication && MKDIR test");Beachte, dass du Backslashs escapen musst.
-
Hallo,
auch unter Linux kannst du es so machen, wie Hume es gezeigt hat. Pass
aber immer gut auf, denn jemand koennte das nutzen, um Zugang zu deinem
Rechner zu bekommen, denn jemand koennte den Parameter an system
manipulieren. Wenn dann dort sowas rauskommt wie:"<irgendwelche befehle>; <schaedliche befehle>"ist das Ganze natuerlich nicht mehr so gut ;). Hinter dem ; koennen natuerlich
irgendwelche Befehle kommen (root passwort neu setzen oder sowas), was
dann natuerlich beliebig schlecht waere.gruss
v R