关闭它:SendMessage(App.handle,WM_CLOSE,0,0)

解决方案 »

  1.   

    //==============================================================================
    //强制终止某应用程序运行********************************************************
    //==============================================================================
    procedure AppForceExit(const AppName: string);
    var lppe: TProcessEntry32;
        ssHandle: THandle;
        Wnd: HWND;
        AppFound: Boolean;
    begin
      ssHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
      AppFound := Process32First(sshandle, lppe);
      while AppFound do
      begin
        //其中lppe.szExefile就是程序名**********************************************
        if UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(AppName) then
        begin
          Wnd := OpenProcess(PROCESS_ALL_ACCESS, true, lppe.th32ProcessID);
          TerminateProcess(Wnd, 0);
        end;
        AppFound := Process32Next(ssHandle, lppe);
      end;
    end;
      

  2.   

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    procedure TForm_Main.Button18Click(Sender: TObject);
    begin
      case (Sender as TButton).Tag of
        0: ShellExecute(Handle, 'Open', PChar('ping.exe'), PChar('192.168.1.11 -t'), nil, SW_SHOWNORMAL);
        1: AppForceExit('ping.exe');
      end;
      (Sender as TButton).Tag := (Sender as TButton).Tag xor 1;
    end;
      

  3.   

    Linux2001(猪!是怎么死的) 的办法你可能要先用Findwindow把那厮的句柄找出来,但对那厮来说也算是善终,quark(夸克)的办法叫枪毙,不想死也得死,Kill,我通杀!
      

  4.   

    使用win32的api:CreateProcess和TerminateProcess,完全满足以上要求
      

  5.   

    不要用winexec而要用createprocess这样你就可以用terminateprocess来关闭它.
      

  6.   

    shenmessage(form1.handle,wm_close,0,0);
      

  7.   

    sendmessage(form1.handle,wm_close,0,0);
    或 application.terminate;
      

  8.   

    在补充一句,
    form1.close;
    form2.close;
      

  9.   

    quark(夸克) :
    你的程序是你自己程序的一部分吧。TProcessEntry32,CreateToolHelp32SnapShot,Process32First,Process32Next
    我不知为什么东西。
      

  10.   

    1.如果要关闭的是自己的程序.则主窗体的Close就可以.或者是Application.Terminate
    2.如果关闭的是外部程序,一般通过句柄来操作.思想是先获得要关闭程序的句柄,通过发送消息(TerminateProcess其实也是发送关闭消息)来关闭外部程序.具体的函数楼上都买了,所以我不浪费了.
      

  11.   

    找句柄可不是容易的事。有没有比FINDWINDOW更好的函数