現在、ちょっとしたシステムモニターを作っているものです。
それでタスクマネージャの CPU 使用率、PF 使用量などは
表示できました。でも、PF 使用量の下に表示されるハンドル数、
スレッド数、プロセス数の取得方法が分かりません。
そこでご存知の方がいましたら教えて欲しいのです。
環境は Windows XP Home SP2、VC++2003、SDK(非MFC) となっています。
よってプロセス数やスレッド数の数を取得する API 関数はあるのか、
どんな API 関数を利用するかだけでも良いのでお願い致します。
それではお待ちしています。
ちなみにネット検索すると「マルチスレッド」の項目が多くてスレッド数の
数だけを数えたい、あるいはスマートに取得する方法を探しています。
あと今後のために「プロセス関連」の情報収集するにはどんな API 関数を
利用すれば良いかもアドバイスできる方は私にも教えて下さい。
お願いします。
CreateToolhelp32Snapshot
Process32First / Next
Thread32First / Next
が使えるでしょう。
他にも、パフォーマンスカウンタとか WMI でも取得できると思います。
WMIからですと、
プロセス :Win32_Process
スレッド :Win32_Thread
で取得できるかと。
WMI Query Analizer
http://www.showg.net/monozukuri/WMIQueryAnalyzer/index.htm
とかでまずはスレッドやプロセスをWMIから拾ってみて、必要な情報が取得
できているかを確認してみてから、WMIが使えるか判断すると良いと思いま
す。
シャノンさん、どらさんへ。
API 関数名の情報をありがとうございました。
「CreateToolhelp32Snapshot」キーワードを頼りに検索して
次のリンク先を参考にする事になりました。
http://nienie.com/~masapico/api_CreateToolhelp32Snapshot.html
http://www.geocities.jp/i96815/windows/win07.html
http://www.geocities.jp/winapi_database2/special/2002_2/index.html
http://madia.world.coocan.jp/delphi/Win32API/Process.htm
これらの情報を元に作成して行こうと思いますが、作成するにあたって
注意すべき点などありましたらアドバイスをお願いします。
また、上記以外で参考にした方が良いと思われるWebページがありましたら
紹介して下さい。ほぼ解決ですがしばらくこのままにしておきます。
それではまた。
解決にチェックします。
それではまた。
ツイート | ![]() |