![]() |
Wie eine Beschreibung für TService erzeugen
Hi Leute,
ich habe einen Dienst unter Verwendung der Komponente TService erstellt. Jetzt möchte ich, dass in der Windows-Anzeige "Dienste" auch eine Beschreibubg zum Dienst zu sehen ist. Leider gibts zu TService keine Property "Description" oder so. Hat jemand vielleicht eine Idee ? Gruß Manuel |
Re: Wie eine Beschreibung für TService erzeugen
Ich kenne keine VCL Funktion. Kannst du aber manuell nachdem Ereignis AfterInstall selber in die Registry schreiben.
Delphi-Quellcode:
procedure TService1.ServiceAfterInstall(Sender: TService);
begin with TRegistry.Create(KEY_READ or KEY_WRITE) do try RootKey := HKEY_LOCAL_MACHINE; if OpenKey('SYSTEM\CurrentControlSet\Services\' + Name, False) then WriteString('Description', 'Meine Beschreibung'); finally Free; end; end; |
Re: Wie eine Beschreibung für TService erzeugen
Ich würde empfehlen, den dokumentierten Weg zu nehmen, und das ist die Verwendung von
![]() Hier ein Auszug aus einer Klasse, die ich mal geschrieben habe:
Delphi-Quellcode:
FhService ist hier das Handle des geöffneten Dienstes.
procedure TServiceInstaller.SetDescription(const Value: String);
var sd: TServiceDescription; begin if FServiceOpened then begin sd.lpDescription := PChar(Value); ChangeServiceConfig2(FhService, SERVICE_CONFIG_DESCRIPTION, @sd); FDescription := Value; end; end; Eventuell musst du dir noch die Funktionsdeklaration und den Typ TServiceDescription importieren:
Delphi-Quellcode:
unit Winscv_fragment;
interface uses Winsvc, Windows; function ChangeServiceConfig2A(hService: SC_HANDLE; dwInfoLevel: DWord; lpInfo: Pointer): BOOL; stdcall; function ChangeServiceConfig2W(hService: SC_HANDLE; dwInfoLevel: DWord; lpInfo: Pointer): BOOL; stdcall; function ChangeServiceConfig2(hService: SC_HANDLE; dwInfoLevel: DWord; lpInfo: Pointer): BOOL; stdcall; type _SERVICE_DESCRIPTIONA = packed record lpDescription: PChar; end; TServiceDescriptionA = _SERVICE_DESCRIPTIONA; PServiceDescriptionA = ^TServiceDescriptionA; _SERVICE_DESCRIPTIONW = packed record lpDescription: PWChar; end; TServiceDescriptionW = _SERVICE_DESCRIPTIONW; PServiceDescriptionW = ^TServiceDescriptionW; //we use the ANSI version TServiceDescription = TServiceDescriptionA; const SERVICE_CONFIG_DESCRIPTION = 1; SERVICE_CONFIG_FAILURE_ACTIONS = 2; implementation function ChangeServiceConfig2A; external advapi32 name 'ChangeServiceConfig2A'; function ChangeServiceConfig2W; external advapi32 name 'ChangeServiceConfig2W'; function ChangeServiceConfig2; external advapi32 name 'ChangeServiceConfig2A'; end. |
Re: Wie eine Beschreibung für TService erzeugen
Zitat:
|
Re: Wie eine Beschreibung für TService erzeugen
Zitat:
...:cat:... |
Re: Wie eine Beschreibung für TService erzeugen
Zitat:
Zitat:
|
Re: Wie eine Beschreibung für TService erzeugen
Also erstmal danke für die vielen Antworten. :thumb:
Der Service wird nicht in NT 4 Umgebungen genutzt werden. Daher ist dieses Problem schon mal aussen vor. Die beiden anderen Lösungen werd ich gleich ausprobieren... Gruß Manuel |
Re: Wie eine Beschreibung für TService erzeugen
Hallo,
also kann man sagen am besten ist, man schreibts direkt in die registry dann funktionierts immer ... |
Re: Wie eine Beschreibung für TService erzeugen
Zitat:
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 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 by Thomas Breitkreuz