![]() |
Herausbekommen ob Dienst Pausierbar oder Abbrechbar ist
Guten tag,
ich beschäftige mich zurzeit mit Diensten. Um mit den Diensten umgehen zu können benutze ich die "WinSvc" unit. Dabei ist mir aufgefallen das manche dienste Nicht abbrechbar oder auch nicht Pausierbar sind, bei machen Diensten jedoch funktioniert beides. Wo kann ich ansetzen um herauszufinden ob ein Dienst abbrechbar oder pausierbar ist? folgender code(aus swissdelphicenter) funktioniert demnach nicht bei allen diensten.
Delphi-Quellcode:
Danke für Antworten.procedure TServiceManager.PauseService; var ServiceStatus: TServiceStatus; begin { Pause the service: attention not supported by all services } ControlService(ServiceHandle, SERVICE_CONTROL_PAUSE, ServiceStatus); end; function TServiceManager.StopService: Boolean; var ServiceStatus: TServiceStatus; begin { Stop the service } Result := ControlService(ServiceHandle, SERVICE_CONTROL_STOP, ServiceStatus); end; procedure TServiceManager.ContinueService; var ServiceStatus: TServiceStatus; begin { Continue the service after a pause: attention not supported by all services } ControlService(ServiceHandle, SERVICE_CONTROL_CONTINUE, ServiceStatus); end; procedure TServiceManager.ShutdownService; var ServiceStatus: TServiceStatus; begin { Shut service down: attention not supported by all services } ControlService(ServiceHandle, SERVICE_CONTROL_SHUTDOWN, ServiceStatus); end; |
Re: Herausbekommen ob Dienst Pausierbar oder Abbrechbar ist
Das lässt sich aus dem Servicestatus (Record TServiceStatus aus Unit WinSvc) im Element dwControlsAccepted auslesen.
Die ![]() |
Re: Herausbekommen ob Dienst Pausierbar oder Abbrechbar ist
Welche werte kann den dwControlsAccepted haben, ich mein es ist ja ein Cardinal typ.
Wie kann ich enstprechende für die werte von ServiceStatus.dwControlsAccepted reagieren.
Delphi-Quellcode:
//Herausfinden ob man diesen service benden oder pausieren darf function TServiceManager.CheckAcceptControl: DWord; var ServiceStatus: TServiceStatus; begin Result := 0; QueryServiceStatus(ServiceHandle, ServiceStatus); Result := ServiceStatus.dwControlsAccepted; end; |
Re: Herausbekommen ob Dienst Pausierbar oder Abbrechbar ist
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz