Kommandozeilentool über WinForm aufrufen lassen
-
Hallo Leute!
Wie der Titel schon verrät, möchte ich, dass beim Klick auf einen Button die Kommandozeile ausgeführt wird und dann automatisch mit "cd" zu einem bestimmten Ordner springt. Wie kann ich das machen? Die cmd.exe bekomme ich zwar mit Process::Start gestartet, aber wie kann ich den PC dazu bringen, selbstständig was darin einzugeben?
Ich hoffe, jemand kann mir helfen!
LG,
Ialokim
-
Hallo,
mittels des Parameters "/c" (oder "/k"):
cmd /c <command>
Schau dir einfach mal die Ausgabe von "cmd /?" an, um die möglichen Parameter aufzulisten...
-
Hallo Th69,
vielen Dank erstmal für die Antwort. Deine Lösung leuchtet mir auch ein und über z.B. das Startmenü kann ich die Kommandozeile auch so aufrufen.
Nur leider kommt in meinem Programm mit folgendem Code:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Process::Start("cmd /c ipconfig"); }
beim Drücken auf den Button immer die Fehlermeldung, dass das System diese Datei nicht finden konnte...
Was mache ich falsch?
LG,
Ialokim
-
Du mußt die Parameter gesondert als 2. Parameter angeben:
Process::Start("cmd", "/c ipconfig");
Alternativ kannst du die (Process)StartInfo benutzen.
Schau am besten direkt in die MSDN: Process-Klasse
-
Ja, so klappt das mit ipconfig schonmal, vielen Dank!
Jetzt habe ich aber das Problem, dass
Process::Start("cmd","/k cd /d d:\_Mikolai");
nicht erkannt wird, d.h. im sich öffnenden Kommandozeilenfenster steht dann "Das System kann den angegebenen Pfad nicht finden." Ich versteh echt nix mehr, weil auch das wieder vom Startmenü aus funktioniert...
Und entschuldigung, wenn ich so lange nerve, aber das Programm will halt nicht so wie ich das gerne hätte...
LG,
Ialokim
-
Hallo,
einen Backslash mußt du escapen, d.h. verdoppeln:
Process::Start("cmd","/k cd /d d:\\_Mikolai");
Das sind aber wirklich Grundlagen - und daher solltest du dir wirklich überlegen, ob du nicht zu C# wechseln solltest (denn C++/CLI ist wirklich nur für Interop-Programmierung gedacht und nichts für Programmieranfänger!).