-1
私はWPF/C#アプリケーションでいくつかのスクリプト(例としてVBScript)を実行し、スクリプトの実行が終了した後にそれを閉じるようにしています。プログラムはProcess.Exitedに対して反応しません
string scriptName = "test.vbs";
int abc = 2;
string name = "Script";
ProcessStartInfo ps = new ProcessStartInfo();
ps.FileName = "cscript.exe";
ps.Arguments = string.Format("\"{0}\" \"{1}\" \"{2}\"", scriptName, abc, name);
Process p = new Process();
p.StartInfo = ps;
p.Exited += this.End;
p.Start();
p.Close();
どうすればいいですか?イベント「終了」は起こりません。
実際にp.EnableRaisingEvents = trueが存在しないことが問題でした。正しいコードは:
「終了」機能とは何ですか? –
p.EnableRaisingEvents = true; –
'' Process'オブジェクトに関連するすべてのリソースを解放する 'p.Close()'を呼び出しています。これには、プロセス状態を監視し、 'Exited'イベントを発生させるためのリソースも含まれます。だから、 'Close()'を呼び出さないでください(少なくとも、あなたがオブジェクトを終えるまでは!)。また、EnableRaisingEventsを設定します。 –