bhffhzh 发表于 2012-1-20 23:50:29

如何判断服务里某一个服务是否存在?

比如判断有没有W3SVC服务。有则执行A段程序,没有则执行B段程序。

netegg 发表于 2012-1-21 06:15:20

#include<services.au3>
_Service_Exists

bhffhzh 发表于 2012-1-21 10:42:33

#include
_Service_Exists
netegg 发表于 2012-1-21 06:15 http://www.autoitx.com/images/common/back.gif



这什么
意思?

bhffhzh 发表于 2012-1-21 10:42:57

比如:

1.IIS卸载程序正在运行
2.判定“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\”下W3SVC存在与否。
3.如果有继续执行程序否则执行下一步


如何来实现。

Ycxw2008 发表于 2012-1-21 11:55:25

本帖最后由 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搜

menfan1 发表于 2012-1-21 12:15:52

服务控制的UDF哈

hzxymkb 发表于 2012-1-21 23:46:02

蛋蛋已经给出答应了,自己去看帮助吧!

bhffhzh 发表于 2012-1-22 10:30:49

谢谢,已经解决。

showshow 发表于 2012-1-27 16:25:08

这个UDF好用的很啊

cpark 发表于 2012-1-30 04:19:02

这个UDF貌似咩有找到帮助文档...

zhoubin 发表于 2012-2-1 11:48:41

试了一下这个代码,写的不错,谢谢楼主。。。。
页: [1]
查看完整版本: 如何判断服务里某一个服务是否存在?