如果已运行如何将它关闭?

解决方案 »

  1.   

    if FileOpen(文件路径, fmOpenRead or fmShareExclusive) < 0 then
    ShowMessage('已经打开');
      

  2.   

    关闭外部应用程序
    下面给出一段在 Delphi 中关闭"计算器"程序为例:
    var
    HWndCalculator : HWnd;
    begin
    // find the exist calculator window
    HWndCalculator := Winprocs.FindWindow(nil, '计算器'); // close the exist Calculator
    if HWndCalculator <> 0 then
    SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
    end;
      

  3.   

    朋友,这个简单,代码如下:
      VAR H:THANDLE;
        FileName:string;
    beginFileName:=‘.exe文件的路径';H:=findwindow(nil,'.exe文件的名字');
    if H=0 then
       BEGIN
       winexec(pchar(FileName),SW_SHOWNORMAL);
       SHOWWINDOW(H,SW_SHOWNORMAL);
       SETFOREGROUNDWINDOW(H);
       END
    ELSE
       BEGIN
       SHOWWINDOW(H,SW_SHOWNORMAL);
       SETFOREGROUNDWINDOW(H);
       END;
    end;这个功能我是用API函树完成的,你试试,记得买单哦,呵呵
      

  4.   

    用FindWindow(nil,你要找的程序的标题 )查找该程序的句柄
    然后用sendmessage(刚才查到的句柄,wm_close,0,0)关掉它
    下面给出一段在 Delphi 中关闭"计算器"程序为例:
    var
    HWndCalculator : HWnd;
    begin
    HWndCalculator := Winprocs.FindWindow(nil,你要找的程序的标题);
    if HWndCalculator <> 0 then//不是0 则处于打开状态
    SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
    end;