0

ユーザーがサービスを停止しようとすると、メッセージボックスを表示しようとしています。

このために私はWTSSendmessageAPIを使用しました...そして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 に答える