拦截关机消息WM_QUERYENDSESSION
作者:admin 发布于:2012-7-7 13:24 Saturday 分类:Windows
LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // not used LPARAM lParam // logoff option ); 详见:http://msdn.microsoft.com/en-us/library/aa376890.aspx
1.只有桌面程序才响应这个消息,console程序和其他是不响应的
2.如果你要拦截系统关机,你必须设置进程相对于其它进程的关闭优先级
BOOL WINAPI SetProcessShutdownParameters( __in DWORD dwLevel, __in DWORD dwFlags );
详见:http://msdn.microsoft.com/en-us/library/ms686227%28v=vs.85%29.aspx
3.但是如果某个程序通过 ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0);的方式强制关机,系统就不会发出WM_QUERYENDSESSION消息,当然也就拦截不到了