Entwickler-Ecke

WinForms - In laufende cmd.exe etwas ausführen


Vitalic - Do 17.11.11 12:00
Titel: In laufende cmd.exe etwas ausführen
Hallo,

also wie der Titel bereits sagt möchte ich in einer bereits laufenden cmd.exe einen oder mehrere Befehle ausführen.
Den Process cmd.exe ruft ein bestimmtes Program auf, welches ich nicht beeinflussen kann.

Die cmd.exe hat auch einen bestimmten namen, welchen man vlt. nutzen könnte um den process zu finden


MfG
Vitalic


Trashkid2000 - Fr 18.11.11 21:49

Hi,
also mit der normalen .Net Process-Klasse kriegst Du das nicht hin.
Denn Du kannst, wenn der Prozess einmal gestartet ist, nicht einfach "RedirectStandardInput" ändern. Das ist das Problem.
Also musst Du schon tiefer in die Trickkiste greifen.

Habe da mal was interessantes auf codeproject gefunden: http://www.codeproject.com/KB/cs/SendKeys.aspx
Also einfach alle Zeichen des Befehls an das Window senden, und dann halt noch ein {Enter}, damit das Ganze ausgeführt wird.
LG, Marko


VampireSilence - Sa 19.11.11 14:27

Für die SendKeys-Variante muss das Fenster aber ständig den Fokus haben. Hier [http://www.c-sharp-forum.de/viewtopic.php?p=644682#644682] hatten wirs schonmal drüber, wie man das auch ohne Fokus hinbekommt, vllt findest du dort ja was Brauchbares.

mfg
- VampireSilence


Trashkid2000 - So 20.11.11 10:54

Hi,

auf der Seite unter den Kommentaren findet sich auch eine Lösung mit der Methode "SendKeysAV", mit der es nicht nötig ist, dass sich das Fenter im Vordergrund befindet. Und das funzt auch.