0

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

为此,我使用了 API……一旦事件发生WTSSendmessage,我就调用了该函数……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;
4

1 回答 1

1

按照我在您之前的问题中向您展示的MSDN 文章中的描述使用 WTSGetActiveConsoleSessionId() 。该文章包含您需要的所有代码。

我还敦促您对 API 调用进行错误检查。在没有这种帮助的情况下诊断错误比需要的更难。

于 2012-05-18T07:40:33.770 回答