Windows NT 4.0 以降でプロセスIDを列挙するにはEnumProcesses()関数を使います。(戻る)
プロトタイプ宣言
BOOL EnumProcesses( DWORD *lpidProcess, // プロセス識別子の配列 DWORD cb, // プロセス識別子の配列サイズ DWORD *cbNeeded // 返されたバイト数 );
サンプル
#include <stdio.h> #include <windows.h> #include <psapi.h> // Psapi.Lib // メイン関数 int main( void ) { DWORD ProcessID[ 1024 ]; DWORD dwSize; DWORD dwMax; DWORD dwNow; // プロセス識別子の取得 EnumProcesses( ProcessID, sizeof(ProcessID), &dwSize ); // 取得した数を求める dwMax = (dwSize / sizeof(DWORD)); // プロセス識別子の表示 for ( dwNow = 0 ; dwNow < dwMax ; dwNow++ ){ printf( "%3d: %08X\n", (dwNow + 1), ProcessID[dwNow] ); } return 0; }
- プロセスIDからプロセス・ハンドルとモジュール・ハンドルを得ることでプロセス名やモジュール名を列挙することが出来ます。
- ヘッダファイルとしてpsapi.hをインクルードして下さい。
- インポートライブラリとしてPsapi.Libをリンクして下さい。
※コメント投稿者のブログIDはブログ作成者のみに通知されます