2012-10-19 65 views

回答

3

您正在尋找WM_ENDSESSION窗消息

http://msdn.microsoft.com/en-us/library/windows/desktop/aa376889(v=vs.85).aspx

LRESULT MyWindowProc(HWND hwind, UINT msg, WPARAM wParam, LPARAM lParam) { 
    switch (msg) { 
    case WM_ENDSESSION: 
     // Session ended. Just like SystemEvents.SessionEnded 
     ... 
     break; 
    ... 
    } 
} 
+0

感謝。它是否也針對服務應用程序進行廣播? – c00000fd

+0

@ user843732不,這隻會發送到桌面應用程序。由於服務與桌面隔離,服務沒有會話的概念 – JaredPar

+1

對於服務,您可以在HandlerEx()實現中註冊SERVICE_CONTROL_SESSIONCHANGE通知。請參閱http://msdn.microsoft.com/en-us/library/windows/desktop/ms683241(v=vs.85).aspx – Bukes

相關問題