如何判断服务里某一个服务是否存在?
比如判断有没有W3SVC服务。有则执行A段程序,没有则执行B段程序。 #include<services.au3>_Service_Exists #include
_Service_Exists
netegg 发表于 2012-1-21 06:15 http://www.autoitx.com/images/common/back.gif
这什么
意思? 比如:
1.IIS卸载程序正在运行
2.判定“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\”下W3SVC存在与否。
3.如果有继续执行程序否则执行下一步
如何来实现。 本帖最后由 Ycxw2008 于 2012-1-21 12:09 编辑
Local $PCNAME=InputBox('提示','请输入电脑名'),$ServerName=InputBox('提示','请输入服务名')
;为了方便你测试,如果测试成功可以不用InputBox,直接按下面格式
;$Pcname='PC',
;$ServerName='WSearch'
;简单测试了下,是需要服务的短名称);WSearch=Windows Search
If $PcName='' Or $ServerName='' Then
MsgBox(0,'警告','缺少必须变量')
exit
Endif
If_ServiceExists($PCNAME,$ServerName) Then
MsgBox(0, '', '继续卸载');可以执行卸载程序
Else
Exit;不存在则退出
EndIf
Func _ServiceExists($sComputerName, $sServiceName)
Local $hAdvapi32
Local $arRet
Local $hSC
Local $bExist = 0
$hAdvapi32 = DllOpen("advapi32.dll")
If $hAdvapi32 = -1 Then Return 0
$arRet = DllCall($hAdvapi32, "long", "OpenSCManager", _
"str", $sComputerName, _
"str", "ServicesActive", _
"long", 0x0001)
If $arRet <> 0 Then
$hSC = $arRet
$arRet = DllCall($hAdvapi32, "long", "OpenService", _
"long", $hSC, _
"str", $sServiceName, _
"long", 0x0080)
If $arRet <> 0 Then
$bExist = 1
DllCall($hAdvapi32, "int", "CloseServiceHandle", "long", $arRet)
EndIf
DllCall($hAdvapi32, "int", "CloseServiceHandle", "long", $hSC)
EndIf
DllClose($hAdvapi32)
Return $bExist
EndFunc ;==>_ServiceExist上面函数也是Copy"ServiceControl.au3"里的 只是让你更好理解
再有需求请自行打开ServiceControl.au3研究,找不到就everything搜 服务控制的UDF哈 蛋蛋已经给出答应了,自己去看帮助吧! 谢谢,已经解决。 这个UDF好用的很啊 这个UDF貌似咩有找到帮助文档... 试了一下这个代码,写的不错,谢谢楼主。。。。
页:
[1]