无法在C#的进程中启动桌面应用程序

时间:2010-05-18 16:25:52

标签: c# process

我尝试使用以下代码以pragrammatically方式运行notepad.exe和Calc.exe等应用程序。我可以看到应用程序在Process Exprorer中激活,但应用程序UI没有出现在屏幕上。我在进程p中得到了这个信息 - “进程必须在确定请求的信息之前退出”并且exitcode是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 个答案:

答案 0 :(得分:2)

哎呀编辑试试这个:

Process p = Process.Start(pInfo);
p.EnableRaisingEvents = true;
p.WaitForExit();
int exitCode = p.ExitCode;
p.Close();

答案 1 :(得分:2)

IdExitCode之间存在误解。您的代码假定进程ID是退出代码而不是(您的“退出代码”是进程ID)。

试试这段代码:

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