[英]Intercept Windows Vista shutdown event in C#
我希望能夠攔截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 。
System.Environment.HasShutdownStarted
使用該活動
WPF的Application.SessionEnding。
Microsoft.Win32.SystemEvents上的SessionEnding / SessionEnded事件可能就是您要查找的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.