FindWindow
TerminateProcess
GetWindowThreadProcessId
///////////////////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject);
var
  Hdle:THandle;
  DW:DWORD;
begin
  Hdle:=FindWindow(nil,'Outlook Express');//获得进程句柄
  if Hdle<>0 then
  begin
    GetWindowThreadProcessId(Hdle,@DW);//获得进程id
    if DW<>0 then
      TerminateProcess(OpenProcess//结束进程(PROCESS_TERMINATE,False,DW),$FFFFFFFF);
  end;
end;

解决方案 »

  1.   

    显示进程:
    procedure TForm1.Timer1Timer(Sender: TObject);
     Var
       FrmHandle:HWND;
       Len:Integer;
       Str:array[0..255] Of Char;
     Begin
       ListBox1.Clear;
       FrmHandle:=GetWindow(Handle,GW_HWNDFIRST);
       While FrmHandle<>0 Do
         Begin
           If GetWindowText(FrmHandle,@Str,255)>0 Then
              ListBox1.Items.Add(StrPas(@Str));
           FrmHandle:=GetWindow(FrmHandle,GW_HWNDNEXT);
         End;
     End;
    关闭进程:
    procedure TForm1.Button1Click(Sender: TObject);
     Var
       Str:pchar;
       FindHandle:HWND;
     Begin
       Str:=Pchar(ListBox1.Items[ListBox1.itemindex]);
       FindHandle:=FindWindow(nil,Str);
       If FindHandle<>0 Then
          SendMessage(FindHandle,WM_CLOSE,0,0);
     End;