Re: WinAPI Library (Snippets) (653)
Verfasst: 16.09.2011 03:40
				
				Da bei mir die beiden Funktionen (Dienst Pausieren und Dienst beenden) unbesehen mit IMA 
wegsemmelten, hab ich den Fehler gefunden. Es war keine Struktur zu dem Pointer angegeben,
die allerdings erwartet wird.
Hab das dann mal kurzerhand mit folgendem korrigiert ...
und 
			wegsemmelten, hab ich den Fehler gefunden. Es war keine Struktur zu dem Pointer angegeben,
die allerdings erwartet wird.
Hab das dann mal kurzerhand mit folgendem korrigiert ...
Code: Alles auswählen
Procedure Service_Stop(Name$)
  
  Protected hSCManager, hServ, lResult
  Protected *p.SERVICE_STATUS = AllocateMemory(SizeOf(SERVICE_STATUS))
  
  hSCManager = OpenSCManager_(#Null, #Null, #GENERIC_READ	| #SC_MANAGER_CONNECT)
  If hSCManager
    hServ = OpenService_(hSCManager, Name$, #GENERIC_EXECUTE)
    If hServ
      If *p
        lResult = ControlService_(hServ, #SERVICE_CONTROL_STOP, *p)
        FreeMemory(*p)
      EndIf
      CloseServiceHandle_(hServ)
    EndIf
    CloseServiceHandle_(hSCManager)
  EndIf
  
  If hServ And lResult
    ProcedureReturn #True
  EndIf
  ProcedureReturn #False
EndProcedure
Code: Alles auswählen
Procedure Service_Pause(Name$)
  
  Protected hSCManager, hServ, lResult
  Protected *p.SERVICE_STATUS = AllocateMemory(SizeOf(SERVICE_STATUS))
  
  hSCManager = OpenSCManager_(#Null, #Null, #GENERIC_READ	| #SC_MANAGER_CONNECT)
  If hSCManager
    hServ = OpenService_(hSCManager, Name$, #GENERIC_EXECUTE)
    If hServ
      If *p
        lResult = ControlService_(hServ, #SERVICE_CONTROL_PAUSE, *p)
        FreeMemory(*p)
      EndIf
      CloseServiceHandle_(hServ)
    EndIf
    CloseServiceHandle_(hSCManager)
  EndIf
  If hServ And lResult
    ProcedureReturn #True
  EndIf
  ProcedureReturn #False
EndProcedure