Autor Beitrag
ErikLange
Hält's aus hier
Beiträge: 11

Win 7
C# (VS 2008)
BeitragVerfasst: Mo 03.05.10 13:54 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 03.05.10 14:45 
Hallo,

entweder du benutzt die Parameter von cmd.exe 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 Threadstarter
Hält's aus hier
Beiträge: 11

Win 7
C# (VS 2008)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 04.05.10 09:30 
Hallo Erik,

handelt es sich vielleicht nur um einen winzigen Schreibfehler (oder Verständnisfehler bei Strings)?
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 11

Win 7
C# (VS 2008)
BeitragVerfasst: 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 :!: