プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

プロセスIDの列挙

2007年10月05日 08時32分53秒 | パフォーマンス関連

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をリンクして下さい。

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« デバイスドライバの列挙 | トップ | 全プロセスの列挙 »
最新の画像もっと見る

コメントを投稿

パフォーマンス関連」カテゴリの最新記事