2011-08-21 25 views
8

Kapandığında veri kaydetmesi gereken bir C# WPF uygulamasına sahibim. Pencere Kapanış/Kapalı olayları, kullanıcı programı kapatırsa iyi çalışır, ancak kullanıcı oturumu kapatır/kapatırsa, çağrılmazlar.Bir wpf uygulamasında Windows kapatma olayını yakala

Bu olayı winforms programlarında yakalama yollarını buldum (here ve here). ama bunu bir WPF uygulamasında nasıl gerçekleştireceğimi anlayamıyorum.

programımın çıkmak için hazır olana kadar kapatma durdurmaya çalışıyorum

cevap

14

yoktur yerleşik bir olay Application.SessionEnding - kullanıcı oturumu kapattığında veya bilgisayarı kapatır bu olay yangınlar ... sadece Buna abone olmanız ve kodunuzu tarih vb. kaydetmeniz gerekiyor ...

+0

Bilgisayarın kapanmasını tamamen durduracak, programım çıkmaya hazır olana kadar kapatmayı durdurmaya çalışıyorum. Üzgünüm, OP'de belirtmeliydim. – zaza

+0

Gerçekten anlamıyorum ... bu olayın kendisi bir şey yapmıyor ... eğer kodunuz cevap vermesi uzun sürüyorsa, Windows uygulamanıza uygulamayı isteyip istemediğinizi soracaktır. Bu olayı ele alırken hızlı olmalısınız .. Windows'u kapatmamaya çalışmayı deneyebilirsiniz (olay işleyicide 'e.Cancel = true;' ayarı) ... – Yahia

+0

ops sry, bu benim tarafımda bir yanlış anlaşılma oldu. Uygulamamdaki olayları arayabilmem için SessionEndingCancelEventArgs etkinliğini iptal etmem gerektiğini düşündüm. Çözümünüz mükemmel çalışıyor. – zaza

İlgili konular