2011-08-21 87 views
8

我有一個c#WPF應用程序,它在關閉時需要保存數據。如果用戶關閉程序,窗口關閉/關閉事件工作正常,但如果用戶註銷/關閉計算機,則不會調用它們。在wpf應用程序中捕獲Windows關機事件

我找到了在winforms程序中捕獲此事件的方法(herehere)。但我不知道如何在WPF應用程序中實現這一點。

我試圖阻止關機,直到我的計劃是準備退出

回答

14

有一個內置的事件Application.SessionEnding - 當用戶註銷或關閉計算機此事件觸發...你只是需要訂閱,並把你的代碼保存日期等在那裏...

+0

這將完全停止計算機關閉,我試圖停止關機,直到我的程序準備退出。對不起,我應該在OP中指定。 – zaza

+0

我真的不明白......這個事件本身沒有任何作用......如果你的代碼需要很長的時間來響應,那麼Windows會詢問用戶他是否想要殺死你不能真正阻止的應用程序......你的應用程序在處理這個事件時應該是快速的。你可以試着告訴Windows不要關閉(在事件處理程序中設置'e.Cancel = true;')... – Yahia

+0

ops sry,這對我來說有點誤解。我想我必須取消SessionEndingCancelEventArgs事件,然後才能在應用程序中調用事件。你的解決方案完美運作 – zaza

相關問題