Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.530 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Existenz eines Dienstes kann unter Win 2008 nicht abgefragt werden

  Alt 12. Jul 2015, 00:07
Du wertest die Ergebnisse der API Aufrufe nicht aus und wunderst dich tatsächlich, warum du keine genaue Information bekommst, was nicht funktioniert?

ts ts ts ts ts ...
Mal abgesehen davon, dass ich die Unit nicht erstellt habe, sondern bislang einfach nur verwendet habe (unter #1 erwähnt) und die ja auch bei hunderten von Installationen nie ein Problem gemacht hat, geht der Aufruf ja noch weiter:

Delphi-Quellcode:
procedure TServiceManager.QueryServiceConfig(SHandle : THandle; Var Config : TServiceDescriptor);

Var
  SvcCfg : LPQuery_Service_ConfigW;
  BytesNeeded : DWord;

begin
  Winsvc.QueryServiceConfig(SHandle,Nil,0,BytesNeeded);
  If (GetLastError<>ERROR_INSUFFICIENT_BUFFER) then
    RaiseLastOSError;
  GetMem(SvcCfg,BytesNeeded);
  Try
    If Not Winsvc.QueryServiceConfig(SHandle,SvcCfg,BytesNeeded,BytesNeeded) then
      RaiseLastOSError;
    With config,SvcCfg^ do
      begin
      Password:='';
      Name:='';
      DesiredAccess:=0;
      ErrorControl:=dwErrorControl;
      ServiceType:=dwServiceType;
      StartType:=dwStartType;
      TagID:=dwTagID;
      CommandLine:=lpBinaryPathName;
      LoadOrderGroup:=lpLoadOrderGroup;
      Dependencies:=lpDependencies;
      UserName:=lpServiceStartName;
      DisplayName:=lpDisplayName;
      end;
  Finally
    FreeMem(SvcCfg,BytesNeeded);
  end;
end;
Also im Prinzip hier, wie von Dalai verwendet.
  Mit Zitat antworten Zitat