Chức năng win32 là gì để kiểm tra xem có tắt máy hay không?Kiểm tra xem tắt máy được khởi động hay không
EDIT: Tôi cần kiểm tra xem bên trong dịch vụ cửa sổ (COM). Làm thế nào để làm điều đó?
Chức năng win32 là gì để kiểm tra xem có tắt máy hay không?Kiểm tra xem tắt máy được khởi động hay không
EDIT: Tôi cần kiểm tra xem bên trong dịch vụ cửa sổ (COM). Làm thế nào để làm điều đó?
Không có chức năng Win32 thực tế nào để kiểm tra.
Thay vào đó, Windows sẽ gửi thông báo WM_QUERYENDSESSION
tới mọi ứng dụng khi khởi động tắt máy.
Bạn có thể trả lời tin nhắn đó và ví dụ như hủy tắt máy. (Mặc dù bạn không nên làm điều đó trừ khi nó là hoàn toàn cần thiết)
Trước khi tắt máy thực sự, thông báo WM_ENDSESSION
được gửi đi.
Bạn chỉ nên thực hiện bất kỳ việc dọn dẹp nào sau thông báo này, vì không đảm bảo rằng hệ thống thực sự tắt sau WM_QUERYENDSESSION
.
CHỈNH SỬA: Nếu bạn muốn nghe những tin nhắn này từ Dịch vụ, bạn phải thực hiện thêm một số thao tác.
Dịch vụ thường không có cửa sổ, vì vậy bạn không thể chỉ cần móc vào hàng đợi thông báo cửa sổ hiện có. Thay vào đó, bạn phải tạo một cửa sổ giả, có nghĩa là chỉ xử lý các thông báo và sử dụng nó để xử lý các thông báo ở trên.
Xem tài liệu MSDN để biết thêm thông tin về message-only windows.
Làm cách nào để kiểm tra xem bên trong dịch vụ cửa sổ (COM)? – devnull
Bạn phải tạo một cửa sổ giả cho điều đó và kiểm tra các thư này trong WindowProc của nó. –
Cảm ơn rất nhiều vì lời giải thích tuyệt vời! – devnull