Einzelnen Beitrag anzeigen

toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: Herausfinden ob ein bestimmter Service installiert ist

  Alt 4. Mai 2005, 10:13
Zitat von sakura:
Folgende Funktion liefert E_FAIL zurück, wenn der Service nicht installiert ist. Getestet unter Win2003.
Delphi-Quellcode:
uses
   WinSvc;

function ServiceGetStatus(sMachine, sService: AnsiString): Integer;
var
   srvManager,srvHandle: SC_Handle;
   srvStatus: TServiceStatus;
   hStat: Integer;
begin
   hStat := E_FAIL;
   srvManager := OpenSCManager(PChar(sMachine), nil, SC_MANAGER_CONNECT);
   if srvManager > 0 then
   begin
      srvHandle := OpenService(srvManager, PChar(sService), SERVICE_QUERY_STATUS);
      if srvHandle > 0 then
      begin
         if QueryServiceStatus(srvHandle, srvStatus) then
            hStat := srvStatus.dwCurrentState;
         CloseServiceHandle(srvHandle);
      end;
      CloseServiceHandle(srvManager);
   end;
   Result := hStat;
end;
......
Funktioniert bei mir leider nicht, ich kriege trotzdem den Status 4 zurück, welcher eigentlich für running steht.
Ich versteh das nicht...
  Mit Zitat antworten Zitat