Ragazzi, ho urgente bisogno di gestire un servizio, intendo start,stop,pausa ect...
io ho realizzato una funzione:
codice:
Public Function ServiceStatus(ServiceName As String) As String
Dim ServiceStat As SERVICE_STATUS
Dim hSManager As Long
Dim hService As Long
Dim hServiceStatus As Long
Dim a As Long
On Error Resume Next
ServiceStatus = ""
hSManager = OpenSCManager(vbNullString, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS)
If hSManager <> 0 Then
hService = OpenService(hSManager, ServiceName, SERVICE_ACTIVE) 'ServiceName, SERVICE_ALL_ACCESS)
If hService <> 0 Then
'dovrebbe bloccare il servizio
a = ControlService(hService, SERVICE_STOP, ServiceStat)
'dovrebbe cercare il servizio
hServiceStatus = QueryServiceStatus(CLng(hService), ServiceStat)
/////IL PROB STA NEL FATTO CHE QUESTE DUE API NON FANNO QUELLO CHE DOVREBBERO.DOVE SBAGLIO?//////
If hServiceStatus <> 0 Then
Select Case ServiceStat.dwCurrentState
Case SERVICE_STOPPED
ServiceStatus = "Stopped"
Case SERVICE_START_PENDING
ServiceStatus = "Start Pending"
Case SERVICE_STOP_PENDING
ServiceStatus = "Stop Pending"
Case SERVICE_RUNNING
ServiceStatus = "Running"
Case SERVICE_CONTINUE_PENDING
ServiceStatus = "Coninue Pending"
Case SERVICE_PAUSE_PENDING
ServiceStatus = "Pause Pending"
Case SERVICE_PAUSED
ServiceStatus = "Paused"
End Select
End If
CloseServiceHandle hService
End If
CloseServiceHandle hSManager
End If
End Function
Naturalmente ho dichiarato tutti i tipi necessari etc etc ...