線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2091
推到 Plurk!
推到 Facebook!

如何關閉一個外部的執行檔

尚未結案
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-31 15:16:58 IP:61.30.xxx.xxx 未訂閱
請問各位大大,我要下什麼樣的指令 才可以關閉一個正在執行的執行檔呢?? 例如有一個Project1.exe正在執行,我要如何在另一個Project上關閉這個 Project1.exe呢??
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-31 15:34:30 IP:218.163.xxx.xxx 未訂閱
 ...
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;
網海無涯,學無止境!
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-31 15:54:19 IP:61.30.xxx.xxx 未訂閱
謝謝qoo1234 兄的答案 不好意思,是我的問題問得不過詳細,如果說的執行檔是類似像 MSN那樣的通訊軟體是在工作列的右下角的地方, 那麼用qoo1234 兄說的方式,可能沒有辦法找到該執行檔 所以,有沒有其他的方式可以關閉像MSN那種在工作列上的執行檔呢???
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-31 16:07:11 IP:218.163.xxx.xxx 未訂閱
引言: 謝謝qoo1234 兄的答案 不好意思,是我的問題問得不過詳細,如果說的執行檔是類似像 MSN那樣的通訊軟體是在工作列的右下角的地方, 那麼用qoo1234 兄說的方式,可能沒有辦法找到該執行檔 所以,有沒有其他的方式可以關閉像MSN那種在工作列上的執行檔呢???
參考看看: http://delphi.ktop.com.tw/topic.php?topic_id=33946 網海無涯,學無止境!
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-31 16:46:17 IP:61.30.xxx.xxx 未訂閱
不好意思,那請問要用到 if StrPas(ProcessEntry32.szExeFile) = 'yourAppName.exe'的 ProcessEntry32.szExeFile時,需要uses什麼嗎?? 因為compiler時一直會出現 "Undeclared identifier ProcessEntry32"的錯誤訊息
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-31 17:37:07 IP:218.163.xxx.xxx 未訂閱
引言: 不好意思,那請問要用到 if StrPas(ProcessEntry32.szExeFile) = 'yourAppName.exe'的 ProcessEntry32.szExeFile時,需要uses什麼嗎?? 因為compiler時一直會出現 "Undeclared identifier ProcessEntry32"的錯誤訊息
加入 uses TLHelp32; 單元 網海無涯,學無止境!
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-12-31 17:43:44 IP:61.30.xxx.xxx 未訂閱
qoo1234兄,真的很謝謝你 我已uses TLHelp32單元了 可是compiler時還是有錯誤耶 "Object or class type required"的錯誤訊息
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-12-31 18:00:28 IP:218.163.xxx.xxx 未訂閱
引言: qoo1234兄,真的很謝謝你 我已uses TLHelp32單元了 可是compiler時還是有錯誤耶 "Object or class type required"的錯誤訊息
參考最樓上我提供的網址...把文章詳細看一次 ..或是提供你所使用的程式碼..列出來..讓大家看看哪裡錯了 < src="http://delphi.ktop.com.tw/download/upload\33223_qoo.gif">網海無涯,學無止境! 發表人 - qoo1234 於 2003/12/31 18:02:52
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-01-02 09:00:02 IP:61.30.xxx.xxx 未訂閱
不好意思,我試過Uses ShellAPI, tlhelp32; 了 可是還是有相同的錯誤 "Object or class type required"的錯誤訊息 我用的是 Delphi 6 ,不知道為什麼一直會有錯誤耶???
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-01-02 13:15:27 IP:218.163.xxx.xxx 未訂閱
//參考看看,另一範例:
 
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;    type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation
     uses Tlhelp32;
{$R *.dfm}    function KillTask(ExeFileName: string): integer;
const
 PROCESS_TERMINATE=$0001;
var
 ContinueLoop: BOOL;
 FSnapshotHandle: THandle;
 FProcessEntry32: TProcessEntry32;
begin
 result := 0;
 FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
 ContinueLoop := Process32First(FSnapshotHandle,
 FProcessEntry32);
 while integer(ContinueLoop) <> 0 do
 begin
  if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =UpperCase(ExeFileName))
   or (UpperCase(FProcessEntry32.szExeFile) =UpperCase(ExeFileName))) then
   Result := Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),FProcessEntry32.th32ProcessID), 0));
  ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
 end;
 CloseHandle(FSnapshotHandle);
end;    procedure TForm1.Button1Click(Sender: TObject);
begin
 killtask('notepad.exe');
end;    end.    
網海無涯,學無止境!
seaturn99
版主


發表:69
回覆:427
積分:214
註冊:2003-08-25

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-01-04 01:42:10 IP:211.76.xxx.xxx 未訂閱
也可以參考一下劣作 ... http://delphi.ktop.com.tw/topic.php?TOPIC_ID=43101
系統時間:2024-11-25 16:33:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!