使用API函数FindWindowif FindWindow(0,运行程序主窗体的Title) <> 0 then
  //正在运行   
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
—————————————————————————————————
       

解决方案 »

  1.   

    FindWindow
    TerminateProcess
    GetWindowThreadProcessId
    ///////////////////////////////////////////////
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Hdle:THandle;
      DW:DWORD;
    begin
      Hdle:=FindWindow(nil,'Outlook Express');
      if Hdle<>0 then
      begin
        showmessage('Out Look express 在运行!');
        GetWindowThreadProcessId(Hdle,@DW);
        if DW<>0 then
          TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,DW),$FFFFFFFF);
      end;
    end;
      

  2.   

    显示进程:
    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;
      

  3.   

    那怎么关闭他呢
    而且uses那要声明什么吗?
      

  4.   

    var
       wnd:hwnd;
    begin
       wnd:=FindWindow(nil,'窗口标题');
       if wnd<>0 then
          SendMessage(wnd,WM_Close,0,0); 
    或  
    var
       wnd:hwnd;
    begin
       wnd:=FindWindow('窗口类名',nil);
       if wnd<>0 then
          SendMessage(wnd,WM_Close,0,0);   
    窗口标题就不用说了,查看窗口类名可以先启动需要查看的程序,然后用WinSight查看(c:\program files\borland\delphi.0\bin\WS.exe);
      

  5.   

    完整例子:
    procedure TForm1.Button1Click(Sender: TObject);
    var Handle1: HWND;
    begin
      Handle1 := FindWindow(0,'Bin_Client');0D
      if  Handle1<>0 then
         PostMessage(Handle1,WM_CLOSE,WPARAM(true),LPARAM(WM_CLOSE));
    end;
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    —————————————————————————————————
           
      

  6.   

    那怎么关闭他呢?
    是SendMessage(wnd,WM_Close,0,0); 吗?
      

  7.   

    比如说我要判断winamp是否在运行,当我得知winmap正在运行后,我就关闭他
    完整的过程怎么实现?请加点注释好吗?感激感激!!
    只要能实现,分我一定给!
      

  8.   

    由于WINAMP的窗口标题是变动,只能用查找窗口类的方法,先启动WINAMP,然后用WinSight查看(c:\program files\borland\delphi.0\bin\WS.exe)窗口类,这里假设为Winamp;var
       wnd:hwnd;
    begin
       wnd:=FindWindow('winamp',nil);
       if wnd<>0 then  //winamp正在运行
          SendMessage(wnd,WM_Close,0,0);  //关闭它