【发布时间】:2016-07-23 11:18:46
【问题描述】:
我正在使用以下代码在我的进程中处理taskkill:
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
private class TestMessageFilter : IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == /*WM_CLOSE*/ 0x10)
{
MessageBox.Show("I'm shutting down");
var mailService = new MailService();
mailService.SendEmail("Test from application exit");
//Application.Exit();
return true;
}
return false;
}
}
然后
static void Main(string[] args)
{
Application.AddMessageFilter(new TestMessageFilter());
Application.Run();
}
MessageBox 弹出并在我执行taskkill /im MyProcess.exe 时发送电子邮件。但是,这不会在 Windows 关闭时发生。
Windows 是在关机时强行终止进程还是我错过了什么?
【问题讨论】: