-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();
어떻게하면됩니까? "Exited"이벤트가 발생하지 않습니다.
실제로 p.EnableRaisingEvents = true가 부재 한 것이 문제였습니다. 올바른 코드 :
Process p = new Process();
p.EnableRaisingEvents = true;
p.StartInfo = ps;
p.Exited += this.End;
p.Start();
'종료'기능이란 무엇입니까? –
p.EnableRaisingEvents = true; –
프로세스 상태를 모니터하고'Exited' 이벤트를 발생시키는 것을 포함하여'Process' 오브젝트와 관련된 모든 자원을 해제하는'p.Close()'를 호출하고 있습니다. 그래서,'Close()'를 호출하지 말아라. (최소한, 객체를 다 끝내기 전까지는!). 그리고, EnableRaisingEvents를 설정하십시오. –