我希望能够拦截C#for Windows Vista中的关闭事件.由于Vista具有高级安全功能,因此调用shutdown命令后运行的所有应用程序都将暂停并显示在列表中,提示用户对其执行操作.
有没有人知道如何克服这一点以及我需要在Vista中使用哪些事件.
谢谢.
您可以使用WPF的应用程序对象并订阅其SessionEnding事件.然后,您可以查看SessionEndingCancelEventArgs.ReasonSessionEnding枚举,以确定会话结束的确切原因(LogOff或Shutdown).
您可能希望看到的是 - Windows Vista中的应用程序关闭更改.基本上,对于你想要的,它都围绕着WM_QUERYENDSESSION.
请注意,这是在.net框架中公开的 - 相反,您需要使用本机函数(p/invoke)并在代码中挂钩wndproc以响应Windows消息.
例如(显示不关闭的原因),您可以在C#中看到Windows Vista - ShutdownBlockReasonCreate.