Не удается запустить настольное приложение в C # Process. - PullRequest
0 голосов
/ 18 мая 2010

Я пытаюсь прагматически запускать приложения, такие как notepad.exe и Calc.exe, со следующими кодами. Я вижу, что приложение активировано в Process Exprorer, но пользовательский интерфейс приложения не отображается на экране. Я получил эту информацию внутри процесса p - «Процесс должен завершиться, прежде чем запрашиваемая информация может быть определена», а код выхода - 1200, 5084 и т. Д. Что не так? Спасибо!

Коды -

ProcessStartInfo pInfo = new ProcessStartInfo(@"C:\Windows\system32\notepad.exe");
pInfo.UseShellExecute = false;
pInfo.CreateNoWindow = false;
pInfo.WindowStyle = ProcessWindowStyle.Normal;
Process p = Process.Start(pInfo);
p.EnableRaisingEvents = true;
int exitCode = p.Id;
p.WaitForExit();
p.Close();

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

Существует недоразумение между Id и ExitCode. В вашем коде предполагается, что идентификатор процесса - это код выхода, а это не так (ваши "коды выхода" - это идентификаторы процесса).

Попробуйте этот код:

ProcessStartInfo pInfo = new ProcessStartInfo(@"C:\Windows\system32\notepad.exe");
pInfo.UseShellExecute = false;
pInfo.CreateNoWindow = false;
pInfo.WindowStyle = ProcessWindowStyle.Normal;
Process p = Process.Start(pInfo);
p.EnableRaisingEvents = true;
p.WaitForExit();
int exitCode = p.ExitCode;
p.Close();

MSDN Process.ExitCode
MSDN Process.Id

2 голосов
/ 18 мая 2010

К сожалению, попробуйте это:

Process p = Process.Start(pInfo);
p.EnableRaisingEvents = true;
p.WaitForExit();
int exitCode = p.ExitCode;
p.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...