如何在Windows XP下监控Windows服务的状态变化?
发布时间:2020-12-13 20:26:29 所属栏目:Windows 来源:网络整理
导读:我正在尝试用C编写一个程序,它可以检测何时启动或停止某些Windows服务(即NT服务). 似乎有一个功能NotifyServiceStatusChange,但这只适用于Vista和Windows 7.我试图在Win XP上这样做,那么最好的方法是什么?除连续投票外还有其他吗? 编辑: 有人能用C答案吗
我正在尝试用C编写一个程序,它可以检测何时启动或停止某些Windows服务(即NT服务).
似乎有一个功能NotifyServiceStatusChange,但这只适用于Vista和Windows 7.我试图在Win XP上这样做,那么最好的方法是什么?除连续投票外还有其他吗? 编辑: 有人能用C答案吗?我对C也很好,但我想远离脚本.
看起来你在XP中最接近的是
QueryServiceStatusEx(单一服务)或
EnumServicesStatusEx(多种服务).
为避免重复调用其中任何一个,有人建议使用WMI设置,查询Win32_Service的state属性.有关详细信息,请参见this thread的底部. 以下是监视警报器服务状态的(基本)WMI脚本: strComputer = "." Set objSWbemServices = GetObject("winmgmts:" &_ "{impersonationLevel=impersonate}!" &_ "" & strComputer & "rootcimv2") 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." 以上和其他示例可以在this TechNet page找到. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 列表/组合框背景和选定的颜色.net 4.5
- windows – Apache配置:“没有可用的侦听套接字”
- wix – 使用msiexec / a启动管理安装的目的是什么?
- windows-8 – Windows 8 Live Tiles每分钟更新一次
- opencv-windows安装教程
- winforms – 用于Windows窗体设计和增加可用性的资源
- Windows 7 – Win 7上的文件夹重定向/脱机文件未连接到域时
- Windows 10中的AutoHotkey – 热键在某些应用程序中无法使用
- 用于处理win32 FILETIME的Java库?
- 无法投射COM对象 – Microsoft Outlook和C#