2011-03-15 4 views
0

WMIを使用してhttpd.exeサービスにクエリを実行して、実行中か停止中かを確認できました。サービスが動作しているかどうかを判断するためのWMIクエリ

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の量を問い合わせたいと思います。実行中のサービスが仕事をしているかどうかを知りたいこれはできますか?私は正しい質問をしていますか?アドバイスが必要です。

+0

私は特定のサービスの消費量を確認できるクエリがありますか? – karikari

答えて

0

UserModeTimeKernelModeTime(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を計算することができます。

関連する問題