以下代码我在9X下和2000下都测试通过unit pocess;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ExtCtrls, StdCtrls,tlhelp32, ImgList;type
  TPocessForm = class(TForm)
    Panel1: TPanel;
    ListView1: TListView;
    Image1: TImage;
    Image2: TImage;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ImageList1: TImageList;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  PocessForm: TPocessForm;implementation{$R *.DFM}procedure TPocessForm.Button1Click(Sender: TObject);
 var  Han: THandle;
  Process: PROCESSENTRY32;
  ok: boolean;
  Rec: TListItem;
  ProcessID: int64;
  i:integer;
begin
   ListView1.Items.Clear;
   i := 0;
   Han := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
   Process.dwSize := SizeOf(Process);
   ok := Process32First(Han, Process);
    while ok do
           begin
             Rec := ListView1.Items.Add;
         //    Rec.Caption := IntToStr(i);
             Rec.Caption:=Process.szExeFile ;
             Rec.SubItems.Add(IntToStr(Process.th32ProcessID));
             i := i+1;
             ok := Process32Next(Han,Process);
           end;
end;procedure TPocessForm.Button2Click(Sender: TObject);
 var  Han: THandle;
//  Process: PROCESSENTRY32;
  ProcessID: int64;  ExitCode:DWORD;
begin
   if ListView1.Selected<>nil then
      begin         ProcessID:=StrToInt64(ListView1.Selected.SubItems.Strings[0]);
         Han:=OpenProcess(PROCESS_TERMINATE, true, ProcessID);
         GetExitCodeProcess(Han, ExitCode);
         TerminateProcess(Han, ExitCode);
         Sleep(500);
         Button1.Click;
end;
end;procedure TPocessForm.Button3Click(Sender: TObject);
begin
   Close;
end;procedure TPocessForm.FormCreate(Sender: TObject);
beginend;end.