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 に答える