6

假设我正在尝试使用以下代码创建一个新进程:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
p.StartInfo.FileName = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\AwesomeFile.exe";
p.StartInfo.Arguments = "parameter1 parameter2";
p.StartInfo.CreateNoWindow = true;
p.Start();

在下一行,我将尝试使用以下行获取该进程的 pid:

MessageBox.Show(p.Id);

这条线给了我“没有进程与这个对象相关联”。错误。关于为什么会发生此错误的任何想法?

4

2 回答 2

10

检查Process.Start的返回值。在某些情况下,Process.Start 可以返回 false,在这种情况下,不会有任何 Id 与之关联。

于 2010-03-29T17:41:39.420 回答
3

执行此 System.Diagnostics.Process.GetProcessesByName("processname")[0].Id。

于 2010-03-29T17:30:33.337 回答