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