停止服务之前的WTSSendmessage

我试图在用户尝试停止服务时显示一个消息框。

为此,我使用了WTSSendmessage API ……一旦发生SERVICE_CONTROL_STOP事件,我就调用了该函数。

我在上面的步骤是对的吗? 因为一旦用户试图停止服务,我没有收到消息框。

请指导我……

以下是我的代码片段::

 case SERVICE_CONTROL_STOP: WTSSendMessage = (fptr1)GetProcAddress(hinstLib, "WTSSendMessage"); BOOL ret = WTSSendMessage(WTS_CURRENT_SERVER_HANDLE, dwSession, lpszTitle, 12 ,lpszText, 7 ,MB_YESNO|MB_ICONINFORMATION, 0, &res, TRUE); ServiceStatus.dwCurrentState = SERVICE_STOP_PENDING; SetServiceStatus( serviceStatusHandle, &serviceStatus ); SetEvent( stopServiceEvent ); return; 

使用WTSGetActiveConsoleSessionId(),如我在之前的问题中向您展示的MSDN文章中所述。 那篇文章包含了你需要的所有代码。

我还强烈建议您为API调用添加错误检查。 在没有这种帮助的情况下诊断错误比它需要的更难。