看起来你在XP中最接近的是
QueryServiceStatusEx(单一服务)或
EnumServicesStatusEx(多种服务).
为避免重复调用其中任何一个,有人建议使用WMI设置,查询Win32_Service的state属性.有关详细信息,请参见this thread的底部.
以下是监视警报器服务状态的(基本)WMI脚本:
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" &_
"{impersonationLevel=impersonate}!" &_
"\\" & strComputer & "\root\cimv2")
Set objEventSource = objSWbemServices.ExecNotificationQuery( _
"SELECT * FROM __InstanceModificationEvent " &_
"WITHIN 10 " &_
"WHERE TargetInstance " &_
"ISA 'Win32_Service' " &_
"AND TargetInstance.Name = 'alerter'")
Set objEventObject = objEventSource.NextEvent()
Wscript.Echo "The status of the alerter service just changed."