PDHで複数データの取得するには?


PD7  2009-12-11 08:49:45  No: 36409

お世話になります。
PDH.DLLを使ってCPUの使用率をとる時は、
szCounterPath:='\Processor(_Total)\% Processor Time';
     dwResult:=PdhAddCounter(hQuery,Pchar(szCounterPath),0,@hcounter1);
dwResult:=PdhGetFormattedCounterValue(hCounter1, PDH_FMT_DOUBLE , @ctrType, @PdhFmtCounterValue);
Gauge1.Progress := Round(PdhFmtCounterValue.doubleValue);
として取得できるのですが、Coreごとを取る場合には、
szCounterPath:= '\Processor(*/*#*)\% Processor Time';
としたのですがうまくいきません。
複数の場合の方法はどうすればいいでしょうか?
また、違うカウンターを取得する場合は、
1つのデータ取得後、カウンターを追加後もう一度、
PdhGetFormattedCounterValueを並べていますが、こんな方法で
いいでしょうか?
よろしくお願いします。


DEKO  2009-12-12 13:13:41  No: 36410

こんにちは。

[How To Get Per-Core CPU Usage]
http://w-shadow.com/blog/2009/04/17/per-core-cpu-usage/
<!> コメント欄の情報に注意 <!>

ワイルドカードを PdhExpandWildCardPath() で展開してやる必要があるようです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加