2010-08-12 4 views
10

Könnte mir jemand helfen und mir sagen, wie man mehrere Argumente an einen neu erstellten Prozess in C# übergibt? Auch welche Klasse (Process oder ProcessStartInfo oder MyProcess) in sollte ich bei der Ausführung eines Programms mit der Bedingung der Übergabe mehrerer Argumente an den neu erstellten/ausgeführten Prozess verwenden?Wie übergeben Sie mehrere Argumente an einen neu erstellten Prozess in C# .net?

Wie ich habe das Äquivalent (Borland) C++ Code für die gleiche Aufgabe, die wie folgt ist:

spawnv(P_NOWAITO,Registry->ReadString("Downloader").c_str(),arglist); 

wo arglist ein Array char Zeiger ist und Registry->ReadString("Downloader").c_str(), das Programm auszuführen.

Schätzen Sie das Feedback von Experten!

+0

Beachten Sie, dass Argumente zu übergeben nicht neu erstellte Prozesse. Sie übergeben Argumente, wenn der Prozess erstellt wird. Sobald der Prozess erstellt wurde, werden die Argumente festgelegt. –

Antwort

28

Um mehrere Befehlszeilenargumente zu übergeben, sollten Sie sie jeweils mit einem Leerzeichen trennen und in Anführungszeichen einschließen, falls das Argument selbst ein Leerzeichen enthält.

string[] args = { "first", "second", "\"third arg\"" }; 
Process.Start("blah.exe", String.Join(" ", args)); 
+0

Vielen Dank Josh Einstein !!! Es hilft wirklich! – Asad

+1

Eine andere Alternative ist das Setzen von ProcessStartInfo.Arguments, falls Sie diese Überladung bereits verwenden ... – Gishu

4
Process.Start("program.exe", "arg1 arg2 arg3"); 
Verwandte Themen