unit Unit1; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, Tlhelp32, StdCtrls, Buttons, CheckLst; 
 
type 
  TForm1 = class(TForm) 
    BitBtn1: TBitBtn; 
    ListBox1: TListBox; 
    Button1: TButton; 
    procedure BitBtn1Click(Sender: TObject); 
    procedure Button1Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
 
var 
  Form1: TForm1; 
 
procedure Search(Strings:TStrings); 
implementation 
 
{$R *.dfm} 
procedure Search(Strings:TStrings); 
var 
  Snap:THandle; 
  RB:Boolean; 
  PE:TProcessEntry32; 
begin 
  if Strings=nil then 
    Exit; 
  snap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); 
  if snap = -1 then Exit; 
  try 
    PE.dwSize:=SizeOf(TProcessEntry32); 
    RB:=Process32First(snap,PE); 
    while RB do 
    begin 
      Strings.AddObject(PE.szExeFile,Pointer(PE.th32ProcessID)); 
      PE.dwSize:=SizeOf(TProcessEntry32); 
      RB:=Process32Next(snap,PE); 
    end; 
  finally 
    CloseHandle(snap); 
  end; 
end; 
procedure TForm1.BitBtn1Click(Sender: TObject); 
begin 
  ListBox1.Items.Clear; 
  Search(ListBox1.Items); 
end; 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  H:THandle; 
  R:Cardinal; 
begin 
  H:=OpenProcess(PROCESS_TERMINATE,True,LongInt(ListBox1.Items.Objects[ListBox1.ItemIndex])); 
  R:=0; 
  TerminateProcess(H,R); 
  CloseHandle(H); 
end; 
 
end. 
关键的: 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  H:THandle; 
  R:Cardinal; 
begin 
  H:=OpenProcess(PROCESS_TERMINATE,True,LongInt(ListBox1.Items.Objects[ListBox1.ItemIndex])); 
  R:=0; 
  TerminateProcess(H,R); 
  CloseHandle(H); 
end; 
其中ListBox1.Items.Objects[ListBox1.ItemIndex]是在遍历进程时存放的ProcessID