2011-08-21 32 views
8

Tôi có ứng dụng WPF C# cần lưu dữ liệu khi đóng. Sự kiện Đóng cửa sổ/Đóng cửa sổ hoạt động tốt nếu người dùng đóng chương trình, nhưng họ không được gọi nếu người dùng đăng xuất/tắt máy tính.Bắt sự kiện tắt máy trong ứng dụng wpf

Tôi đã tìm ra cách để nắm bắt sự kiện này trong các chương trình winforms (herehere). nhưng tôi không thể tìm ra cách để đạt được điều này trong một ứng dụng WPF.

Tôi đang cố gắng để ngăn chặn tắt máy cho đến khi chương trình của tôi đã sẵn sàng để thoát

Trả lời

14

Có một built-in kiện Application.SessionEnding - sự kiện này cháy khi người dùng log off hoặc tắt máy tính ... bạn chỉ cần cần phải đăng ký vào đó và đặt mã của bạn để lưu ngày vv trong đó ...

+0

Điều đó sẽ ngừng hoàn toàn máy tính khi tắt máy, tôi đang cố dừng tạm dừng cho đến khi chương trình của tôi sẵn sàng thoát. Xin lỗi tôi nên có quy định rằng trong OP. – zaza

+0

Tôi không thực sự hiểu ... sự kiện này không có gì ... nếu mã của bạn mất nhiều thời gian để phản hồi thì Windows sẽ hỏi người dùng nếu anh ta muốn giết ứng dụng của bạn mà bạn không thể ngăn chặn ... ứng dụng của bạn nên nhanh khi xử lý sự kiện này .. bạn có thể thử yêu cầu Windows không tắt máy (thiết lập 'e.Cancel = true;' trong trình xử lý sự kiện) ... – Yahia

+0

ops sry, đó là một chút hiểu lầm về phía tôi. tôi nghĩ rằng tôi đã phải hủy bỏ sự kiện SessionEndingCancelEventArgs trước khi tôi có thể gọi các sự kiện trong ứng dụng của tôi. giải pháp của bạn hoạt động hoàn hảo. – zaza

Các vấn đề liên quan