0

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

4

1 に答える 1

0

を使用すると、および(100 ナノ秒単位で与えられる)Win32_Processを取得できます。これにより、特定の時間中の各 CPU 平均を計算できます。UserModeTimeKernelModeTime

(100 ナノ秒単位で与えられる) でWin32_Process区切られた2 つの情報を取得すると仮定します。TimeInterval

UserTimeRate = ((UserModeTime2 - UserModeTime1) / TimeInterval) * 100;

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

CPU = (((UserModeTime2 - UserModeTime1) + (KernelModeTime2 - KernelModeTime1)) / TimeInterval) * 100;

最初からのレートが必要な場合は、今TimeIntervalから 計算できますCreationDate

于 2011-04-14T06:34:18.353 に答える