Einzelnen Beitrag anzeigen

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