Results 1 to 3 of 3

Thread: Stoppen service voor de-installeren.

  1. #1

    Stoppen service voor de-installeren.

    Ik wil mijn service voor het de-installeren eerst stoppen. Voor het stoppen van een service gebruik ik onderstaande code. Maar als ik dit in mijn eigen service gebruik bij ServiceBeforeUninstall dan werkt deze code niet. Heb ook soortgelijke code geprobeerd. Maar die werken ook niet. Lijkt er op dat ik vanuit de service zelf dit niet zo mag doen. Als ik de code uitvoer in een ander (extern) programma kan ik de service probleemloos stoppen.
    Code:
    //STOP A SERVICE//
    // return TRUE if service succesfully STOPPED
    // aMachineName:
    //   machine name, ie: \\DESKTOP, if empty = local machine
    // aServiceName
    //   service name, ie:  W32Time
    
    function ServiceStop(aMachineName, aServiceName: string): boolean;
    var
      schm,schs: SC_Handle;
      ss: TServiceStatus;
      dwChkP: DWord;
    begin
      schm := OpenSCManager(PChar(aMachineName), nil, SC_MANAGER_CONNECT);
      if (schm > 0) then begin
        schs := OpenService(schm,  PChar(aServiceName), SERVICE_STOP or SERVICE_QUERY_STATUS);
        if (schs > 0) then  begin
          if (ControlService(schs, SERVICE_CONTROL_STOP, ss)) then begin
            if (QueryServiceStatus(schs,ss)) then begin
              while (SERVICE_STOPPED<> ss.dwCurrentState) do begin
                dwChkP := ss.dwCheckPoint;
                Sleep(ss.dwWaitHint);
                if (not QueryServiceStatus(schs,ss)) then break;
                if (ss.dwCheckPoint < dwChkP) then break;
              end;
            end;
          end;
          CloseServiceHandle(schs);
        end;
        CloseServiceHandle(schm);
      end;
      Result := SERVICE_STOPPED = ss.dwCurrentState;
    end;
    Dus hoe kan ik mijn service het beste stoppen bij ServiceBeforeUninstall
    Niets is zo gemakkelijk als het lijkt.

  2. #2
    Simpel, gewoon mijn programma sluiten dus.....
    Niets is zo gemakkelijk als het lijkt.

  3. #3
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?
    Posts
    1,004
    voor install/uninstall gebruik ik meestal Inno Setup

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •