有點難度,關機查詢。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiAPI/html/delphi_20061128044645159.html
系統在關機時,會一個一個應用程式處理。
我希望在程式中,可以用API或別的方式查詢,當前是否進入關機過程中。雖然我的程式還沒有收到關機的通知,因為還在處理別的程式。
關機時有些程式會出現結束任務,取消的提示對話方塊
我想應該是處理系統關機訊息,結束本程式處理工作,相當於結束一個服務
沒有明白你的意思。
關機是有訊息的,你的程式可以在接收到關機訊息時候,如果不想關機,可以處理這個訊息不讓關機。
嘿嘿 師傅就是師傅~~ 上次不是我做的那個也是關機的麼 既然處理訊息擷取不到的話 那就按你上次做的那樣 用關機特權來強制處理 不可以麼~~
關機或Logff後,Windows會傳依序送出WM_QUERYENDSESSION的資訊給每個Process,如果中間有一個Process不能順利結束(例如:Word修改後未存檔,而出現是否存檔,但我們按取消),這時該資訊執行的結果會傳回False(0),這時Windows也就不再繼續送WM_QUERYENDSESSION給下一個Proccess。反之,如果所有的Process都可以順利結束(也就是每個送出的WM_QUERYENDSESSION都傳回True),那才代表以以順利結束。
關機是會收到訊息。
可是我希望在收到訊息之前能夠提前檢測到,而不是等待訊息到來。
注意:我並不想阻止關機。
因為運行程式較多的時候,關機過程很慢,特別是有的程式可能在結束時會大量佔用CPU時間,也許要好幾秒以後我的程式才會收到訊息。
如果能解決,另貼送200分。
可是我希望在收到訊息之前能夠提前檢測到,而不是等待訊息到來。
-----------------------------
覺得這個可能比較難,因為在關機訊息來之前,除非電腦操作的人知道要不要關機(意外情況除外)。
我覺得可以通過變通的方法解決:接收到關機訊息,先阻止,不讓關機,先處理你程式,等處理完成後,由你的程式負責強制關機。
不知道還有沒有其它辦法,看看樓下的怎麼解決。
大哥...你這個....
違背了訊息機制吧??
樓上說的還在理
還有可能實現
LZ的想法....
不可能....晤.....應該是不可能的
無解。