C#里用process类打开程序,怎么样监控打开的程序主窗口并在其关闭时触发事件?

SYGKT 2014-07-08 02:39:27
我用process类打开了一个程序,比如这个process实例叫p,但是我发现我手动关闭掉那个程序的主窗口后,p.exited事件并没有触发,请问怎么样才能处理p的主窗口关闭的事件? 谢谢
...全文
427 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SYGKT 2014-07-08
  • 打赏
  • 举报
回复
引用 5 楼 jobscq 的回复:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = new System.Diagnostics.ProcessStartInfo("C:\\Program Files\\Notepad++\\notepad++.exe");
p.EnableRaisingEvents = true;    //一定要有这个才能触发Exited 事件
 p.Exited += new EventHandler(p_Exited);
p.Start();
多谢....我忘了写这个了,之前明明写过的,哈哈,多谢
周美文 2014-07-08
  • 打赏
  • 举报
回复
是不是主窗口关掉了,P并没有完全退出导致没有触发呢
jobscq 2014-07-08
  • 打赏
  • 举报
回复

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = new System.Diagnostics.ProcessStartInfo("C:\\Program Files\\Notepad++\\notepad++.exe");
p.EnableRaisingEvents = true;    //一定要有这个才能触发Exited 事件
 p.Exited += new EventHandler(p_Exited);
p.Start();
geyewei 2014-07-08
  • 打赏
  • 举报
回复
引用 1 楼 luoye4321 的回复:
你打开的是一个process(进程),当你关闭主窗体后能保证进程关闭了? 另外,p.exited事件写在哪里了?或者尝试下其他的结束事件,如:Application.exited
同意。 大概是什么东西导致p并没有结束吧 。
SYGKT 2014-07-08
  • 打赏
  • 举报
回复
引用 1 楼 luoye4321 的回复:
你打开的是一个process(进程),当你关闭主窗体后能保证进程关闭了? 另外,p.exited事件写在哪里了?或者尝试下其他的结束事件,如:Application.exited
p是process的一个实例,exited是process类自带的事件,不是我写的,我用它打开了一个程序(FFPLAY)。按照道理ffplay关掉之后进程就应该结束了啊,我之前对notepad就是这样弄的就关掉了
落叶1210 2014-07-08
  • 打赏
  • 举报
回复
你打开的是一个process(进程),当你关闭主窗体后能保证进程关闭了?
另外,p.exited事件写在哪里了?或者尝试下其他的结束事件,如:Application.exited

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧