Servus und hallo,
Ich bräuchte Eure Hilfe zu folgender Frage: Wie kann ich herausfinden, ob ein Dienst stoppbar oder pausierbar (oder oder oder) ist?
Ehrlich gesagt, denke ich, dass ich den richtigen Weg gegangen bin, mein Chef einen Fehler reingesetzt hat und ich es nun wieder "korrigieren" darf.
Folgendes: Ich lese den Service Status mit QueryServiceStatus
Als Ergebnis erhalte ich einen record vom Typ
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| _SERVICE_STATUS = record dwServiceType: DWORD; dwCurrentState: DWORD; dwControlsAccepted: DWORD; dwWin32ExitCode: DWORD; dwServiceSpecificExitCode: DWORD; dwCheckPoint: DWORD; dwWaitHint: DWORD; end; |
dwControlsAccepted ist das, was ich brauche

nur... wie bekomme ich den richtigen Wert da raus?
Meine Idee war/ist:
Delphi-Quelltext
1: 2:
| CanPause := ((dwControlsAccepted and SERVICE_ACCEPT_PAUSE_CONTINUE) = 0); CanStop := ((dwControlsAccepted and SERVICE_ACCEPT_STOP) = 0); |
Mein Chef änderte das = in ein <> ...
Daraufhin konnten anschließend "geupdatete" Dienste nicht mehr gestoppt bzw. pausiert werden. Denn den Diensten wurde beim Update der Konfiguration jeweils ein "False" da rein geschrieben, obwohl eigentlich ein "True" darin hätte stehen müssen.
Nun... bevor ich meinem Chef nun an den Karren fahre, würde ich gerne 100%ig sicher wissen, ob ich recht habe. Gibt es irgendwo eine Doku dazu?
Danke schön,
Crowley