我的一個Delphi XE2程序在運行和閒置時'阻止Windows關機'。我的大部分應用程序都不是這樣,我需要解決它。在XP上,Windows默默無法關閉;在Win7上,對話框顯示我的應用程序阻止關機。什麼可能導致Delphi程序「阻止Windows關機」?
與此處的類似問題不同,程序是單線程的,我沒有使用托盤,並且暫時斷開了主窗體中的OnCloseQuery和FormClose事件以及具有它們的一個子窗體。在正常使用中,程序乾淨地關閉,並且在Process Explorer中沒有任何痕跡。
我已經試驗性地添加了WM_QueryEndSession和WM_EndSession處理程序,它們將日誌消息寫入Windows事件日誌。在測試Windows關閉時,只有前者發生,Wparam和Lparam都爲零。
如果有什麼可能導致這種情況,或者如何進一步調查,我將不勝感激。我不願意在不知道發生了什麼的情況下嘗試調用WM_QueryEndSession上的Halt。
你可以實現WM_QueryEndSession並調用Application.Terminate – whosrdaddy
當Windows告訴它時爲什麼不關閉你的程序? –
@大衛:那正是我想要發現的! – frogb