Einzelnen Beitrag anzeigen

krac

Registriert seit: 17. Nov 2016
10 Beiträge
 
#1

Dienst starten mit Delphi

  Alt 17. Nov 2016, 12:29
Hallo zusammen,

ich hätte eine frage zu diesem code :

Delphi-Quellcode:
function ServiceStart(Machine, ServiceName: string): Boolean;
// Machine is UNC path or local machine if empty
var
  h_manager, h_svc: SC_Handle;
  ServiceStatus: TServiceStatus;
  dwCheckPoint: DWORD;
  ServiceArgVectors: PChar;
begin
  h_manager := OpenSCManager(PChar(Machine), nil, SC_MANAGER_CONNECT);
  if h_manager > 0 then
  begin
    h_svc := OpenService(h_manager, PChar(ServiceName),
      SERVICE_START or SERVICE_QUERY_STATUS or SC_MANAGER_ALL_ACCESS);
    if h_svc > 0 then //ab hier bricht er ab und beendet alles
    begin
      if (StartService(h_svc, 0, ServiceArgVectors)) then { succeeded } 
      begin
        if (QueryServiceStatus(h_svc, ServiceStatus)) then
        begin
          while (SERVICE_RUNNING <> ServiceStatus.dwCurrentState) do
          begin
            dwCheckPoint := ServiceStatus.dwCheckPoint;
            Sleep(ServiceStatus.dwWaitHint);
            if (not QueryServiceStatus(h_svc, ServiceStatus)) then
              // couldn't check status
              break;
            if (ServiceStatus.dwCheckPoint < dwCheckPoint) then
              break;
          end;
        end;
      end;
      CloseServiceHandle(h_svc);
    end;
    CloseServiceHandle(h_manager);
  end;

  Result := (SERVICE_RUNNING = ServiceStatus.dwCurrentState);
end;

und zwar wenn ich dies ausführe, komme ich nie in die ab kommentar rein

könnt ihr mir lösungvorschläge geben

danke im vorraus

Geändert von krac (17. Nov 2016 um 12:31 Uhr) Grund: Code-tags ergänzt. Beim nächsten mal bitte selber eonfügen.
  Mit Zitat antworten Zitat