【发布时间】:2015-09-13 12:42:53
【问题描述】:
我在 FormClosing() 和 FormClosed() 事件中有一个已启动的 win-form 应用程序。
对于另一个应用程序,我想像这样强制关闭第一个应用程序:
string procId = proc.Id.ToString();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "taskkill.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "/f /t /pid " + procId;
Process.Start(startInfo);
当我想通过这些代码强制关闭第一个应用程序或使用 Task Manager -> End Process , FormClosing() 和 FormClosed() strong> 事件不会被触发。
如何强制这些事件在每种情况下触发或解决方案是什么?
【问题讨论】:
-
如果您的进程被杀死,您将无能为力。 为什么您希望该代码运行?你不能在下次启动时清理被杀死的实例吗?
-
没有人,在启动和关闭时,我有不同的代码用于在文件中写入一些数据。我不能改变它们!
-
一般来说,要么等到下次启动,要么告诉进程你将要杀死它并允许它事先执行操作(假设这两个进程都在你的控制之下)。
-
@Ehsan Sajjad 该线程在 ConsoleApplication 中模拟 Form_Closing() 事件,在 winforms 中我们有该事件。只需要在每次终止时运行它。
标签: c# .net winforms process formclosing