用于确定服务是否正在运行的WMI查询

我设法使用WMI查询httpd.exe服务,以检查它是否正在运行或停止。这是我正在玩的代码:
hres = pSvc->ExecQuery(
        bstr_t("WQL"), 
        bstr_t("SELECT * FROM Win32_Process Where Name='httpd.exe'"),
        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 
        NULL,
        &pEnumerator);
现在我想查询服务正在使用的CPU数量。我想知道正在运行的服务是否正常工作。可以这样做吗?我问的是正确的问题吗?需要建议:)     
已邀请:
使用
Win32_Process
,您可以获得
UserModeTime
KernelModeTime
(以100纳秒为单位给出),它允许您在特定时间内计算每个CPU的平均值。 假设你得到两个
Win32_Process
信息,分别为
TimeInterval
(以100纳秒单位给出)。
UserTimeRate = ((UserModeTime2 - UserModeTime1) / TimeInterval) * 100;

KernelTimeRate =((KernelModeTime2 - KernelModeTime1) / TimeInterval) * 100;

CPU = (((UserModeTime2 - UserModeTime1) + (KernelModeTime2 - KernelModeTime1)) / TimeInterval) * 100;
如果你想从开始的速率,你可以从
CreationDate
到现在计算
TimeInterval
。     

要回复问题请先登录注册