2011-08-16 4 views
1

Я пытаюсь запустить процесс под названием «prog.exe» с аргументами «blah $ 00» (вроде кода), но все, что я пытаюсь выполнить, не удается.сбой приложения с аргументами ProcessStartInfo

string file = "blah $00"; 
string result = string.Empty; 

ProcessStartInfo P = new ProcessStartInfo(@"""" + "prog.exe" + @""""); 
P.Arguments = @"""" + file + @""""; 
P.CreateNoWindow = true; 
P.UseShellExecute = false; 
P.RedirectStandardOutput = true; 
Process.Start(P); 

using (Process process = Process.Start(P)) 
{ 
    using (StreamReader str = process.StandardOutput) 
     result = str.ReadToEnd(); 
} 

MessageBox.Show(result); 

Когда этот код выполняется, моя программа просто падает, и я вынужден закрыть ее с помощью диспетчера задач.

Я не уверен, что не так с моим кодом (я не правильно устанавливаю аргументы?), Поэтому любая помощь будет оценена.

+4

Почему вы дважды цитируете все? вы посмотрели, как выглядит командная строка? –

+0

Вы пробовали это без '@" "" "s? –

+2

Зачем вам нужны цитаты вокруг prog.exe? –

ответ

1

Запустите процесс с заданным аргументом с консоли и посмотрите, что произойдет. Если результат - это то, что вы ожидаете, просто удалите двойные кавычки, и это должно решить вашу проблему.

+0

Должен ли я удалить двойные кавычки из prog.exe и аргументов, BTW? – david

+0

Для prog.exe точно, просто укажите правильный полный путь, вместо аргументов, если ваши аргументы Blah и $ 00, поэтому у вас есть 2 аргумента, удаляющих кавычки, если это один аргумент, используйте «\» ». – Tigran

0

Я не думаю, что ваша программа выйдет из строя. Он просто ждет завершения «prog.exe»! Бьюсь об заклад, ваша программа продолжает работать, как только вы закончите работу с prog.exe и закроете ее, и убедитесь, что в диспетчере задач она действительно исчезла.

+0

Проблема в том, что загрузка процессора возрастает до 100%, и мой компьютер падает до тех пор, пока я не закрою его с помощью диспетчера задач. Для prog.exe не требуется более 5 секунд или около того. – david

+0

Какая из программ вызывает использование ЦП? Ваша программа или prog.exe? –

Смежные вопросы