Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi "Dienst anhalten" nicht erlauben (https://www.delphipraxis.net/29205-dienst-anhalten-nicht-erlauben.html)

dingdoi 5. Sep 2004 15:37


"Dienst anhalten" nicht erlauben
 
Ich möchte den Pause-Button in der Diensteübersicht ("Hält den Dienst an.") für einen selbstgeschriebenen Dienst deaktivieren. Da dies bei einigen anderen Diensten bereits der Fall ist, muss es ja irgendwie funktionieren. Nur wie?
:coder2:

Ich installiere den Dienst über CreateProcess. Kann es evtl. mit einer bestimmten Kombi des Parameters dwDesiredAccess klappen?

Grüße vom Jan

Duffy 5. Sep 2004 15:49

Re: "Dienst anhalten" nicht erlauben
 
Hallo dingdoi,
Delphi-Quellcode:
TService1.AllowPause := False;
bye
Claus

dingdoi 5. Sep 2004 15:58

Re: "Dienst anhalten" nicht erlauben
 
Hallo Claus,

Danke für die schnelle Antwort. Leider kann ich diesen Weg nicht gehen, da ich nicht die TService Komponente benutze, sondern den Dienst über die API installiere (CreateProcess).

Grüße vom Jan

Duffy 5. Sep 2004 16:01

Re: "Dienst anhalten" nicht erlauben
 
´Hallo dingdoi,
du benutzt aber TService oder?

bye
Claus

Vjay 5. Sep 2004 16:09

Re: "Dienst anhalten" nicht erlauben
 
Guck doch mal was TService1.AllowPause := False; ausführt oder verändert, bzw wo TService auf AllowPause zugreift.
TService ist ja auch nur ein API-Wrapper, d.h. könntest da evtl. klauen.

dingdoi 5. Sep 2004 16:12

Re: "Dienst anhalten" nicht erlauben
 
Delphi-Quellcode:
hSCM:=OpenSCManager(NIL, NIL, SC_MANAGER_ALL_ACCESS);
CASE hSCM OF
  0:FatalError;
ELSE BEGIN
  hService:=CreateService(hSCM,
               PChar(ServiceName),
               PChar(DisplayName),
               SERVICE_START OR SERVICE_QUERY_STATUS OR _DELETE,
               SERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS,
               StartupMode,
               SERVICE_ERROR_NORMAL,
               @modname[0],
               NIL, NIL, NIL, NIL, NIL);
  CASE hService OF
    0:BEGIN
      CloseServiceHandle(hSCM);
      FatalError;
    END;
    ELSE BEGIN
      CloseServiceHandle(hSCM);
      CloseServiceHandle(hService);
    END;
END;

Meflin 5. Sep 2004 16:27

Re: "Dienst anhalten" nicht erlauben
 
[ot] muss das wirklich sein? ich als user hätte gerne selbst die kontrolle über meine services, und systemnotwendig wird das teil ja dann wohl doch nicht sein oder? wenn ich deine software will lasse ich auch den service laufen. [/ot]

dingdoi 5. Sep 2004 16:33

Re: "Dienst anhalten" nicht erlauben
 
@meflin:

Ich sach ma: Nice to have.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz