WTSSendmessage avant d’arrêter un service

J’essaie d’afficher une boîte de message une fois que l’utilisateur tente d’arrêter un service.

Pour cela, j’ai utilisé l’API WTSSendmessage … Et j’ai appelé la fonction une fois que l’événement SERVICE_CONTROL_STOP s’est produit.

Ai-je raison dans l’étape ci-dessus? Parce que je ne reçois pas de boîte de message une fois que l’utilisateur essaie d’arrêter le service.

Guidez-moi s’il-vous-plaît…

Ci-dessous mon extrait de code ::

 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; 

Utilisez WTSGetActiveConsoleSessionId () comme décrit dans l’ article MSDN que je vous ai montré dans votre question précédente. Cet article comprend tout le code dont vous avez besoin.

Je vous prie également d’inclure la vérification des erreurs pour vos appels d’API. Diagnostiquer des erreurs sans cette aide est plus difficile que nécessaire.