Entwickler-Ecke
C# - Die Sprache - Windowskonsole über Konsolenanwendung steuern
ErikLange - Mo 03.05.10 13:54
Titel: Windowskonsole über Konsolenanwendung steuern
Hallo zusammen,
ihr habt mir letztens schon sehr gut bei einem Problem geholfen, jedoch hänge ich da wieder dran :(
Ich muss über eine C# Konsolenanwendung die Windowskonsole öffen und in ihr dann Prozesse öffnen. Außer jemand hat eine Idee wie es einfacher gehen würde^^
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe");
psi.WindowStyle = ProcessWindowStyle.Normal;
psi.Arguments = "D:\rdfc.exe"; // Einer von vielen Befehlen die ich probiert habe
Process.Start(psi);
Der Tipp mit der Process-Klasse war schon sehr gut, jedoch kann ich zwar die Konsole öffnen und selber etwas eintippen, aber das sollte eigentlich das Programm für mich übernehmen.
Der Eigentliche Befehl für die Konsole ist: 1. ins Laufwerk "D" wechseln
2. rdfc.exe datei.txt 1 Gb overwrite
da hab ich im Moment keine Ahnung wie ich die Konsole steuere, da ich auch nicht genau weis, wo ich die Argumente eintrage, da ich auch gesehen habe, das ich die gleich in der ersten Zeile hinter "cmd.exe" eintragen darf.
Wenn ich als Argument "/?" schreibe öffenet sich ja auch die Hilfe, nur jedes andere Programm funktioniert nich.
Kenne die Process-Klasse noch nicht lange, da brauch ich noch ein wenig Übung und Unterstützung. Wenn also vieleicht jemand mir mal eine Beispiellösung für mein Problem geben könnte, dürfte ja kein Großes Problem sein, da könnte ich anhand diesem Programm dann weiterarbeiten. Oder ein guter Tipp wäre auch ok ;)
Vielen Dank schonmal !
danielf - Mo 03.05.10 14:45
Hallo,
entweder du benutzt die
Parameter von cmd.exe [
http://ss64.com/nt/cmd.html] oder die machen keinen Sinn.
Wenn du D:\rdfc.exe ausführen willst, dann musst du diese auch als StartInfo angeben.
Und wenn du tatsächlich willst, dass du in die Console Befehle per Programm eingeben willst, dann musst du den InputStream verwenden. Ich denke dies macht aber in nahezu allen Fällen keinen Sinn!
Gruß
ErikLange - Di 04.05.10 08:09
Guten Morgen,
ich denke das die Parameter von cmd.exe in dem Fall nicht sehr viel nützen, da hatteste Recht.
Glaube da gabs ein kleines Missverständnis, die Datei rdfc.exe kann nur in der Windowskonsole gestartet werden, somit wollte ich es als Parameter für die cmd.exe nehmen.
ProcessStartInfo psi = new ProcessStartInfo("D:\rdfc.exe", "datei.txt 1 GB");
psi.WindowStyle = ProcessWindowStyle.Normal;
Process.Start(psi);
Console.ReadKey();
Falls ich es so schreiben würde, sagt er, dass er die Datei nicht finden kann, oder ist da noch ein anderer Fehler? (das Verzeichnis stimmt soweit)
Du hast den Inputstream zwar sofort wieder beiseite gelegt, aber vieleicht wäre das ja doch was für mein Problem?
Wie käme ich an diesen dran?
JüTho - Di 04.05.10 09:30
Hallo Erik,
handelt es sich vielleicht nur um einen winzigen Schreibfehler (oder Verständnisfehler bei Strings)?
C#-Quelltext
1:
| ProcessStartInfo psi = new ProcessStartInfo(@"D:\rdfc.exe", "datei.txt 1 GB"); |
Oder sollte für "datei.txt" ein Pfad angegeben werden? Dafür ist am besten Path.Combine zu benutzen.
Gruß Jürgen
PS. Bitte Code als solchen markieren: entweder mit [cs]code[/cs] oder über: "Bereiche" öffnen, C# auswählen, Plus-Button.
danielf - Di 04.05.10 09:34
Nein wäre es nicht... (InputStream)
Ich vermute du hast einfach die falschen Argumente an das rdfc.exe Programm gegeben.
Ließt er datei.txt ein?
Soll es wirklich 1 GB heißen?
ErikLange - Di 04.05.10 09:45
@ JüTho
Genial, es klappt. Es war wirklich nur ein Schreibfehler. Hab zwar noch keine Ahnung wohin der die Datei schreibt, aber das ist erstmal 2. ;)
Sonst probier ich dann mal Path.Combine aus.
Das mit dem Code kennzeichnen werd ich mir angewöhnen.
@ danielf
Die Argumente waren richtig, das Programm erstellt eine Zufallsdatei " datei.txt" (jenachdem was man haben möchte) und die soll 1 GB groß sein, kann auch 1 MB schreiben, aber da lässt sich die Zeit so doof messen.
Hoffe nun mal das ich die größeren Programme so auch gestartet bekomme :)
Vielen Dank :!:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!