AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wie eine Beschreibung für TService erzeugen

Ein Thema von manuel · begonnen am 7. Feb 2005 · letzter Beitrag vom 16. Feb 2005
Antwort Antwort
manuel

Registriert seit: 17. Sep 2003
Ort: MainBootRecord
72 Beiträge
 
Delphi 4 Client/Server
 
#1

Wie eine Beschreibung für TService erzeugen

  Alt 7. Feb 2005, 18:57
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
sometimes I feel diagonally parked in a parallel universe
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#2

Re: Wie eine Beschreibung für TService erzeugen

  Alt 8. Feb 2005, 03:39
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;
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Wie eine Beschreibung für TService erzeugen

  Alt 8. Feb 2005, 16:00
Ich würde empfehlen, den dokumentierten Weg zu nehmen, und das ist die Verwendung von MSDN-Library durchsuchenChangeServiceConfig2


Hier ein Auszug aus einer Klasse, die ich mal geschrieben habe:

Delphi-Quellcode:
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;
FhService ist hier das Handle des geöffneten Dienstes.


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.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#4

Re: Wie eine Beschreibung für TService erzeugen

  Alt 8. Feb 2005, 16:26
Zitat von Chewie:
Ich würde empfehlen, den dokumentierten Weg zu nehmen, und das ist die Verwendung von ChangeServiceConfig2
Nach meinen Erfahrungen funktioniert das nicht unter Windows NT 4.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Wie eine Beschreibung für TService erzeugen

  Alt 8. Feb 2005, 16:30
Zitat von Sprint:
Nach meinen Erfahrungen funktioniert das nicht unter Windows NT 4.
Korrekt, aber in WinNT4 gibt es auch keine Anzeigen dafür Das muss man dann wieder separat abfangen.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#6

Re: Wie eine Beschreibung für TService erzeugen

  Alt 8. Feb 2005, 16:46
Zitat von sakura:
Korrekt, aber in WinNT4 gibt es auch keine Anzeigen dafür [...]
Das Problem liegt ja bei...
Zitat:
Delphi-Quellcode:
function ChangeServiceConfig2A; external advapi32 name 'ChangeServiceConfig2A';
function ChangeServiceConfig2W; external advapi32 name 'ChangeServiceConfig2W';
function ChangeServiceConfig2; external advapi32 name 'ChangeServiceConfig2A';
Wenn diese Funktionen statisch gelinkt sind, kann der Service nicht unter Windows NT 4 gestartet werden. Also wäre es besser, diese Funktionen dynamisch zu linken.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
manuel

Registriert seit: 17. Sep 2003
Ort: MainBootRecord
72 Beiträge
 
Delphi 4 Client/Server
 
#7

Re: Wie eine Beschreibung für TService erzeugen

  Alt 8. Feb 2005, 17:16
Also erstmal danke für die vielen Antworten.

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
sometimes I feel diagonally parked in a parallel universe
  Mit Zitat antworten Zitat
BennyM

Registriert seit: 7. Okt 2003
Ort: Frensdorf
24 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Wie eine Beschreibung für TService erzeugen

  Alt 16. Feb 2005, 09:46
Hallo,
also kann man sagen am besten ist, man schreibts direkt in die registry dann funktionierts immer ...
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Wie eine Beschreibung für TService erzeugen

  Alt 16. Feb 2005, 09:48
Zitat von BennyM:
Hallo,
also kann man sagen am besten ist, man schreibts direkt in die registry dann funktionierts immer ...
Zur Zeit, als bis einschl. Windows 2003, ja. Aber falls sich der Speicherort mal ändern sollte, dann ist die andere Lösung näturlich besser. Wenn das Wörtchen wenn nicht wär...

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 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