OS上で実行中の、指定したプロセスの情報を取得します。
この関数は、Windows 2000以降のWindows系OSでしか機能しません。非対応のOSで実行した場合には、例外が発生します。この関数を使用する場合は、必ず例外処理コードを記述する、あるいは事前に対応チェックを行うなど、何らかの例外対策をしてください。
プロセスの情報を、辞書配列で返します。指定したpidのプロセスが存在しない場合はvoidを返します。取得できる情報(辞書配列のキーと値)は引数flagsに依存します。キーは下記の通りで、特に断りがない限り、値は整数型です。
tppfModuleInfoを指定すると、モジュールの情報を取得できます。
tppfTokenInfoを指定すると、プロセスのアクセストークンに関する情報を取得できます。現バージョンでは、情報の検索対象はローカルコンピュータのみで、リモートコンピュータは対象外です。
tppfTimeInfoを指定すると、プロセスの実行時間に関する情報を取得できます。
YYYY-MM-DDThh:mm:ss.sssTZD
です。tppfMemoryInfoを指定すると、プロセスごとのメモリ使用情報を取得できます。
tppfIOInfoを指定すると、プロセスのI/Oに関する情報を取得できます。
現在の吉里吉里のプロセス情報を取得してみます。
var dic = System.getProcessInfo(void, tppfModuleInfo | tppfTokenInfo | tppfMemoryInfo | tppfTimeInfo | tppfIOInfo);
変数dicの内容は以下のようになります。
%[ "ProcessID" => int 10572, "ParentProcessID" => int 10748, "CountThreads" => int 3, "PriorityClassBase" => int 8, "ExeFile" => string "krkr.eXe", "ErrorFlag" => int 0, "ErrorMessage" => string "", "ModuleBaseName" => string "krkr.eXe", "ModuleFileName" => string "C:\\path\\to\\kirikiri2\\krkr.eXe", "AccountName" => string "Hoge", "DomainName" => string "MYDOMAIN", "StartTime" => string "2006-01-21T20:22:13.468+09:00", "ExitTime" => string "1601-01-01T09:00:00.000+09:00", "StartTimeUTC" => string "2006-01-21T11:22:13.468Z", "ExitTimeUTC" => string "1601-01-01T00:00:00.000Z", "KernelTime" => int 625000, "UserTime" => int 781250, "CPUUsage" => int 0, "PageFaultCount" => int 2800, "WorkingSetSize" => int 6995968, "PeakWorkingSetSize" => int 7090176, "PagefileUsage" => int 3411968, "PeakPagefileUsage" => int 5292032, "QuotaPagedPoolUsage" => int 28760, "QuotaPeakPagedPoolUsage" => int 28784, "QuotaNonPagedPoolUsage" => int 3280, "QuotaPeakNonPagedPoolUsage" => int 3636, "ReadOperationCount" => int 8, "WriteOperationCount" => int 0, "OtherOperationCount" => int 369, "ReadTransferCount" => int 2767018, "WriteTransferCount" => int 0, "OtherTransferCount" => int 3760 ]
CSRSS.EXEのプロセス情報を取得してみます(PIDが192の場合)。CSRSS.EXEは、プロセス管理やメモリ管理等を行うシステムプロセスです。
var dic = System.getProcessInfo(192, tppfModuleInfo | tppfTokenInfo | tppfMemoryInfo | tppfTimeInfo | tppfIOInfo);
変数dicの内容は以下のようになります。
%[ "ProcessID" => int 192, "ParentProcessID" => int 164, "CountThreads" => int 10, "PriorityClassBase" => int 13, "ExeFile" => string "CSRSS.EXE", "ErrorFlag" => int 8192, "ErrorMessage" => string "プロセス情報を取得できませんでした。\nアクセスが拒否されました。\r\n" ]