2017-01-14 1 views
2

The same problem but hasn't been solved yetWie die bestehenden internen Dienstnamen (lpServiceName) wissen, dass es

ich die Remote-Desktop-Services in C++ stoppen müssen aufhören, aber wenn diese

SC_HANDLE WINAPI OpenService(
    _In_ SC_HANDLE hSCManager, 
    _In_ LPCTSTR lpServiceName, //"Remote Desktop Configuration" e.g.DisplayName 
    _In_ DWORD  dwDesiredAccess 
); 

Über das lpServiceName Argument aufrufen, wenn Es gibt keinen Platz in dieser Variable, es funktioniert gut, z "WebClient". Wie weiß ich, die entsprechenden korrekten Namen „Remote Desktop-Konfiguration“, um erfolgreich rufen Sie die Openservice Funktion

+0

Der Platz ist ein absolutes zulässiges Symbol im Servicenamen. einfach verwechseln Sie 'Dienstname', den Sie in Aufruf' OpenService' und 'Anzeigename' verwenden müssen – RbMm

+0

Systemsteuerung> Verwaltung> Dienste. Klicken Sie mit der rechten Maustaste auf den Dienst und wählen Sie Eigenschaften. Sie sehen den "Service name", es ist "SessionEnv". –

Antwort

3

über den zweiten Parameter von OpenService-lpServiceName:

Dies ist der Name des lpServiceName angegeben Parameter des CreateService

Aber Sie versuchen, die lpDisplayName verwenden (3. Parameter von CreateService) als der lpServiceName Parameter zu OpenService - das ist ein Fehler. OpenService funktioniert nur mit dem lpServiceName Namen.

Wenn es keinen Platz in dieser Variablen ist, funktioniert es gut

ein Leerzeichen in lpServiceName absolut legal ist - kein Problem hier. Was Sie wirklich sagen wollen, ist, dass es funktioniert , wenn lpServiceName entspricht lpDisplayName.

Verwandte Themen