2011-04-04 131 views
1

我有一個應用程序在收到關閉事件時停止,但此應用程序需要在用戶會話中持續運行。如果有程序阻止關機,然後用戶'取消'關機,則應用程序不再運行。Windows關閉取消 - 已關閉的重新啓動應用程序

有沒有辦法讓Windows重新啓動應用程序或讓應用程序成爲關閉的最後一個應用程序?

我已閱讀:http://msdn.microsoft.com/en-us/library/ms686227%28VS.85%29.aspx但這隻會改變通知的順序,並且在阻止關閉的應用程序終止後不會收到。

謝謝!

+0

您正在使用哪個關機事件? – Neil 2011-04-04 23:12:08

回答

2

有沒有辦法讓Windows重新啓動 應用程序或有 應用是最後 應用程序關閉?

這會違反「What if two programs did this?」本金。

你使用SetProcessShutdownParameters()來延遲你的應用程序關閉嗎?這還不夠嗎?

1

WM_ENDSESSION添加到您的Windows消息處理循環;這僅在Windows實際上正在關閉時纔會發送。如果由於某種原因,您的應用程序需要介入關閉過程,您還可以響應WM_QUERYENDSESSION消息。

+0

只是澄清一點:如果您的應用程序從WM_QUERYENDSESSION返回TRUE,那麼即使會話沒有結束,它也會得到WM_ENDSESSION - wParam會指示它是否結束。 – 2011-04-05 02:51:48

+0

@Ciaran;是的,這是正確的。自從我自己處理這個消息以來,沒有被捕獲,並且它已經有一段時間了。 – 2011-04-05 03:21:05

相關問題