本帖最后由 boyhong 于 2010-4-7 16:43 编辑
回复 2# netegg
研究一天了,还是没有看明白,我想用Services.au3代替ServiceControl.au3,用API的方式代替几个wmi的方式实现对系统服务状态的查询及控制:
以下是我想实现的系统服务检查控制功能(目前我是采用如下来解决,但发现有些用户计算机上winmgmt禁用,那我下边就不能执行了,无奈。):#include <ServiceControl.au3>
_SetService("Netlogon",1)
_SetService("seclogon",1)
_SetService("PolicyAgent",2)
Func _SetService($ServiceName,$testservice=1)
If $testservice = '' Then $testservice = 1
$Servicecheck = _ServGetDetails($ServiceName)
If @error <> -1 Then
If $testservice=1 Then
If $Servicecheck[16]<>"Auto" Then _SerSetState($ServiceName,1)
If $Servicecheck[4]<>"Running" Then _ServStart($ServiceName)
Return SetError(5)
EndIf
If $testservice=2 Then
If $Servicecheck[4]="Running" Then _ServStop($ServiceName)
If $Servicecheck[16]="Auto" Then _SerSetState($ServiceName,3)
Return SetError(6)
EndIf
Else
Return SetError(7)
EndIf
EndFunc
希望大家能够忙里偷闲看一下,指点一下用法,感谢。 |