目次に戻る
一覧ページに戻る
CPSystemInfo::GetProcessInfo
2002/01/31 update.
Ver 1.07
OS上で起動しているプロセスの情報を取得します。

書式

  int GetProcessInfo(CPSTProcessInfo *lpInfo,int MaxInfoCou);

パラメータ


lpInfo
取得したプロセスの情報を格納する「CPSTProcessInfo」構造体の配列へのポインタを指定します。
この1つずつに各プロセス情報が返されることになります。
配列のサイズは、MaxInfoCou分確保しておく必要があります。
MaxInfoCou
取得してくるプロセス数を指定します。
戻り値
取得できたプロセス情報の数を返します。

解説


OS上で起動しているプロセスの情報を取得します。
もしも、実際のプロセス数がMaxInfoCouで指定した数よりも少ない場合は、 戻り値に実際に取得できたプロセス数(戻り値<MaxInfoCou)が返されます。
プロセス情報は一括して取得できる必要があるため、まず「CPSystemInfo::GetProcessCount」にて プロセス数を取得してから、「CPSTProcessInfo」構造体配列を確保するようにしてください。

例:

CPSystemInfo sysInfo;
CPSTProcessInfo *lpPInfoA;
int pCou;

//プロセス数の取得
pCou=sysInfo.GetProcessCount();

//プロセス情報を格納するバッファを確保
lpPInfoA=(CPSTProcessInfo *)malloc(pCou*sizeof(CPSTProcessInfo));
if(lpPInfoA){
    
    //プロセス情報を取得
    sysInfo.GetProcessInfo(lpPInfoA,pCou);

    ....

    free(lpPInfoA);
}


取得した構造体(上の例では、「lpPInfoA[0]、lpPInfoA[1]、lpPInfoA[2]...」)の各要素は以下のようになります。
ただし、OSやOSのバージョンによっては取得できない項目があります。

CPSTProcessInfo構造体
要素名 書式 内容
PID int PID; プロセスID
Name char Name[256]; プロセス名
TotalMem int TotalMem; 確保している(使用している)メモリ量(KB単位)
※Windows 95/98/Meでは未使用
FreeMem int FreeMem; 未使用のメモリ量(KB単位)
※Windows環境では未使用
ActiveTime int ActiveTime; 使用を開始してからの経過時間(秒単位)
※Windows 95/98/Meでは未使用

※「Mac OS 9」ではメモリ管理方法として、 各アプリケーション(プロセス)ごとで使用するメモリ量を一括して確保し、 その確保したメモリ中から利用できる分を切り崩して利用します。
このため、Windows環境やMac OS Xとはメモリ管理方法(取得できるプロセス情報でのメモリのパラメータ)が異なります。


ビルド時に必要なファイル


ライブラリ :CPartsLib.lib (Macintoshの場合は、CPartsCW.a)
ヘッダ :CPSystemInfo.h


関連リンク


CPSystemInfoクラス
CPSystemInfo::GetProcessCount