有點難度,關機查詢。

來源:互聯網
上載者:User
有點難度,關機查詢。 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的想法....  
   
   
  不可能....晤.....應該是不可能的

無解。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.