關於WM QUERYENDSESSION訊息

2022-03-07 12:11:19 字數 751 閱讀 7930

msdn:

thewm_queryendsessionwm_queryendsession

當結束對話或者乙個程式呼叫系統關閉功能的時候,wm_queryendsession訊息會被傳送給尚未終止的所有視窗。當程式在處理這個訊息的時候,如果返回了false(0),那麼系統將不結束對話或者關機(登出)。

所以在處理這訊息的時候,我們要有個好的習慣,就是對資料進行保護操作,以免造成資料的損失。

原理:windows在關機的時候會想所有頂層視窗廣播乙個訊息wm_queryendsession,其lparam引數可以區分是關機還是登出使用者(登出使用者時lparam是endsession_logoff)。然後windows會等到所有的應用程式都對這個訊息返回true才會關機,因此,只要我們的應用程式對這個訊息的處理返回false,windows就不會關機了。而且通過這個例子,大家也應該可以區分系統關機和登出使用者了吧。

lresult callback wndproc (hwnd hwnd, uint imsg, wparam wparam, lparam lparam)

return

defwindowproc (hwnd, imsg, wparam, lparam) ;

}}

關於lparam引數是通知碼有一些的值:

endsession_logoff 

0x80000000

更多資訊:

關於程式關於世界

首先,在學了1年多的軟體設計的基礎上,問下自己 程式是什麼?業務需求是什麼?程式有什麼用?什麼是演算法?什麼是資料庫?或許每個人的理解不同,會給出不同的答案。那麼自己的理解 程式是乙個讓計算機工作的流程,在程式寫好之後,計算機就會按照,程式設計師定義好流程在執行。其實很多時候,乙個程式的好壞,在於乙...

關於血液關於軟體

1 自然沉降法 將血袋垂直吊掛於4 2 冰箱內,使紅細胞自然下沉1 3d,或將血袋呈70 80 角立於冰箱,需用時,用一次性分漿器分出血漿,制得濃縮紅細胞。2 洗滌法 一般用生理鹽水反覆洗滌3 6次。經洗滌的紅細胞,除白細胞和血小板減少外,血漿蛋白也極少,紅細胞中殘存的血漿蛋白含量約為原總蛋白的1 ...

關於冷漠,關於愛情

我不知道為什麼今天又莫名其妙開始思考愛情這件事,隨之就解決了我一直無法面對冷漠這件事 被冷漠是我始終無法消化的一件事,每當遇見冷漠時,我總會覺得就像一團火把自己燒得面目全非,但對方卻毫無傷害。但我突然懂了,遇到冷漠時,體面的離開即可 在乎你的人一定會在你離開後,找到你跟你解釋為什麼 連解釋都來不及,...