HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0428
かかし特定プロセス(プログラム)のCPU稼働率取得3解決


かかし

リンク

2014/4/28(Mon) 08:14:58|NO.61718

特定プロセス(プログラム)のCPU稼働率取得はどのようにすればよいでしょう。
pdh.dllを使うのは分かるのですが、
PdhAddCounterに\\Process(test.exe#0)\\% Processor Time
などと入力しても応答がなく困ってます・・・どこかプログラムが間違っているのでしょうが・・・。

よろしくおねがいします。



この記事に返信する


KA

リンク

2014/4/28(Mon) 18:08:49|NO.61721

>>どこかプログラムが間違っているのでしょうが・・・。
それを見ないと誰も答えられないと思いますよ。



暇人

リンク

2014/4/29(Tue) 00:50:33|NO.61731

>PdhAddCounterに\\Process(test.exe#0)\\% Processor Time
まず .exe の拡張子はいらない

他にも問題あるのか分からないからサンプル

#module #uselib "Pdh" #func _PdhOpenQuery "PdhOpenQuery" int,int,var #func _PdhCloseQuery "PdhCloseQuery" int #func global PdhCollectQueryData "PdhCollectQueryData" int #func global PdhAddCounter "PdhAddCounterA" int,sptr,int,var #func global PdhGetFormattedCounterValue "PdhGetFormattedCounterValue" int,sptr,int,var #define global PDH_FMT_LONG 0x00000100 #define global PDH_FMT_DOUBLE 0x00000200 #define global PDH_FMT_LARGE 0x00000400 #define global PDH_FMT_NOSCALE 0x00001000 #define global PDH_FMT_1000 0x00002000 #define global PDH_FMT_NOCAP100 0x00008000 #deffunc PdhOpenQuery var qh if qh_bak {PdhCloseQuery qh_bak} _PdhOpenQuery 0, 0, qh if stat<0 {dialog "PdhOpenQuery\nerr"+strf(" 0x%08x",stat):end} qh_bak=qh return #deffunc PdhCloseQuery onexit //終了時に呼び出される _PdhCloseQuery qh_bak return #global PdhOpenQuery hQuery //新規クエリーの作成(このハンドルを使いカウタを追加する) //エディタから実行するとインスタンス名がhsp3なのでそれを利用 PdhAddCounter hQuery,"\\Process(hsp3)\\% Processor Time",0, hCounter //パフォーマンスカウンタをクエリーに追加 if stat<0 {dialog "PdhAddCounter\nerr"+strf(" 0x%08x",stat):end} sdim Value,16 //PdhGetFormattedCounterValueで使用する dupptr cpu,varptr(Value)+8,8,3 //Valueの8バイト以降の8バイトをDOUBLEで使えるようにクローン化 repeat repeat 20 //適当に負荷をかける color rnd(128),rnd(128),rnd(128) boxf rnd(640),rnd(480),rnd(640),rnd(480) loop if gettime(6) ! tim {//1秒毎にカウンタ更新 tim=gettime(6) PdhCollectQueryData hQuery //クエリー中のパフォーマンスカウンタの更新 PdhGetFormattedCounterValue hCounter,PDH_FMT_DOUBLE ,0,Value //指定したカウンタの現在の値を特定の形式で取得 title strf("%6.2f%%",cpu) } await 10 loop



かかし

リンク

2014/5/15(Thu) 12:27:56|NO.61997

返信遅れて申し訳ありません。
拡張子必要ないというヒントだけでも素晴らしかったのにわざわざサンプルまで頂いてありがとうございます。
無事に監視可能になりました。ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.