![]() |
Einem Dienst eine Erklärung für die MMC mitgeben
Salvete,
so - nun wohl die letzte Geschichte zum Thema Serviceinstaller... Wenn ich mir die MMC-Dienstekonsole anschaue, so finde ich dort zu allen Diensten eine kurze Anleitung. Leider finde ich keine Möglichkeit bei eigenen Diensten auch eine kurze Erklärung mitzugeben. - Oder weiss da jemand was? :?: Gruss EL |
Re: Einem Dienst eine Erklärung für die MMC mitgeben
Das funktioniert so
Delphi-Quellcode:
Ich hoffe, dass ich nichts vergessen habe.
uses WinSvc;
const SERVICE_CONFIG_DESCRIPTION = 1; SERVICE_CONFIG_FAILURE_ACTIONS = 2; type TSERVICE_DESCRIPTION = packed record lpDescription: PChar; end; function ChangeServiceConfig2A(hService: HWND; dwInfoLevel: DWord; lpInfo: Pointer): BOOL; stdcall; external 'advapi32.dll'; implementation procedure SetServiceDescription(ServiceName, Description: String); var lDescription : TSERVICE_DESCRIPTION; lManager, lServiceHandle : Cardinal; begin lManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS); if (lManager <> 0) then begin lServiceHandle := OpenService(lManager, PAnsiChar(ServiceName) , SERVICE_ALL_ACCESS); if (lServiceHandle <> 0) then begin lDescription.lpDescription := PAnsiChar(Description); ChangeServiceConfig2A(lServiceHandle, SERVICE_CONFIG_DESCRIPTION, @lDescription); CloseServiceHandle(lServiceHandle); end; CloseServiceHandle(lManager); end; end; Die Funktion "SetServiceDescription" musst Du natürlich auch nocj irgendwo definieren. Grüße Sven |
Re: Einem Dienst eine Erklärung für die MMC mitgeben
Der Standardservice bietet keine Möglichkeit eine Beschreibung anzugeben. Diese habe ich bisher daher über die Apifunktion selbst gesetzt:
Delphi-Quellcode:
@SvB: Woher hast du den Quelltext? Der sieht ja 1 zu 1 aus wie der aus meinem Projekt.
[...]
const SERVICE_CONFIG_DESCRIPTION = 1; type TSERVICE_DESCRIPTION = packed record lpDescription: PChar; end; [...] function ChangeServiceConfig2A(hService: HWND; dwInfoLevel: DWord; lpInfo: Pointer): BOOL; stdcall; external 'advapi32.dll'; [...] procedure TYourServiceClass.ServiceAfterInstall(Sender: TService); var lDescription : TSERVICE_DESCRIPTION; lManager, lServiceHandle : Cardinal; begin lManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS); if (lManager <> 0) then begin lServiceHandle := OpenService(lManager, PChar(Self.Name), SERVICE_ALL_ACCESS); if (lServiceHandle <> 0) then begin lDescription.lpDescription := 'Deine Beschreibung'; ChangeServiceConfig2A(lServiceHandle, SERVICE_CONFIG_DESCRIPTION, @lDescription); CloseServiceHandle(lServiceHandle); end; CloseServiceHandle(lManager); end; end; |
Re: Einem Dienst eine Erklärung für die MMC mitgeben
@SirThornberry:
Ich hatte gerade meine VM mit Delphi runtergefahren und wollte alles ausmachen, dann hab ich es aber noch mal angeschmissen. Ich musste mich vor ca. zwei Monaten mal mit Services auseinandersetzen und es müsste von diesem Beitrag gewesen sein. Zum Glück hatte ich mir die URL in den Quelltext eingetragen, sonst hätte ich es jetzt nicht mehr gewusst, bzw. rausbekommen. ![]() Ich habs für mich noch mal etwas angepasst. Dankeschön noch mal. Grüße Sven |
Re: Einem Dienst eine Erklärung für die MMC mitgeben
:) Und ich dachte schon ich bin im falschen Film und hab den unterbewusst selbst irgendwo aufgesammelt *g*
|
Re: Einem Dienst eine Erklärung für die MMC mitgeben
Zitat:
vielen Dank. Verrätst Du mir auch noch, welche Unit ich für "OpenSCManager" etc. einbinden muss? Gruss EL |
Re: Einem Dienst eine Erklärung für die MMC mitgeben
Ich denke, wie ich es bei mir mit reingeschrieben habe: WinSvc
|
Re: Einem Dienst eine Erklärung für die MMC mitgeben
Zitat:
Super - vielen Dank! Gruss EL |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 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