如何啟動停止Windows服務
出自VFP Wiki
如何啟動停止Windows服務
*
* AppDev: Something You Should Know by Irena Kennedy : SYSK 197: Smart Start and Stop Service in VS.NET Build
* http://blogs.msdn.com/irenak/archive/2006/09/13/752075.aspx
*
DO ServiceList
? Service( "start", "W3SVC" )
? ServiceStatus( "W3SVC" )
? Service( "stop", "W3SVC" )
? ServiceStatus( "W3SVC" )
PROCEDURE ServiceList
LOCAL WMIService
LOCAL Services
LOCAL Service
WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Services = WMIService.ExecQuery("Select * from Win32_Service" )
For Each Service In Services
? Service.Name + " " + Service.State
NEXT
ENDPROC
FUNCTION Service
LPARAMETERS action, serviceName
LOCAL WMIService
LOCAL Services
LOCAL Service
LOCAL result
result = .f.
WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Services = WMIService.ExecQuery("Select * from Win32_Service where Name = '" + serviceName + "'" )
IF Services.Count = 1 THEN
For Each Service In Services
DO CASE
CASE action == "start"
IF Service.State <> "Running" THEN
result = Service.StartService()
ENDIF
CASE action == "stop"
IF Service.State <> "Stopped" THEN
result = Service.StopService()
ENDIF
ENDCASE
NEXT
ENDIF
RETURN result
ENDFUNC
FUNCTION ServiceStatus
LPARAMETERS serviceName
LOCAL WMIService
LOCAL Services
LOCAL Service
LOCAL result
result = ""
WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Services = WMIService.ExecQuery("Select * from Win32_Service where Name = '" + serviceName + "'" )
IF Services.Count = 1 THEN
For Each Service In Services
result = Service.State
NEXT
ENDIF
RETURN result
ENDFUNC