2011年7月7日木曜日

プロセスリストを表示する(その2)

Project jediのJclのJclSysInfoユニットにある。RunningProcessesList関数を使用すると
プロセスリストが簡単にとれます。

以下、サンプル

  1. procedure TForm1.Button1Click(Sender: TObject);  
  2. unit Unit1;  
  3.   
  4. interface  
  5.   
  6. uses  
  7.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  8.   Dialogs, StdCtrls, ExtCtrls;  
  9.   
  10. type  
  11.   TForm1 = class(TForm)  
  12.     LabeledEdit1: TLabeledEdit;  
  13.     Button1: TButton;  
  14.     ListBox1: TListBox;  
  15.     procedure FormCreate(Sender: TObject);  
  16.   private  
  17.     { Private 宣言 }  
  18.   public  
  19.     { Public 宣言 }  
  20.   end;  
  21.   
  22. var  
  23.   Form1: TForm1;  
  24.   
  25. implementation  
  26. Uses JclSysInfo;  
  27.   
  28. {$R *.dfm}  
  29.   
  30. procedure TForm1.FormCreate(Sender: TObject);  
  31. var  
  32.  ProcessList : TStringList;  
  33.   i : Integer;  
  34.   Pid : Cardinal;  
  35.   
  36. begin  
  37.  ListBox1.Clear;  
  38.   ProcessList := TStringList.Create;  
  39.   try  
  40.   JclsysInfo.RunningProcessesList(ProcessList,true);  
  41.     for i := 0 to ProcessList.Count-1 do  
  42.     begin  
  43.       Pid := GetPidFromProcessName(ProcessList.Strings[i]);  
  44.       ListBox1.Items.Add('(' + IntToStr(Pid) + ')' + ProcessList.Strings[i]);  
  45.     end;  
  46.   
  47.   finally  
  48.    ProcessList.Free;  
  49.   end;  
  50.   
  51. end;  

RunningProcessesListは、引数で指定したTStringsを継承した型インスタンスに
プロセスのリストを返してくれます。

このJclSysInfoユニット、ざっと見た感じで、便利そうなものが一杯あった。
サンプルプログラムを元にもうチョットみてみよう。

0 件のコメント: