全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2042
推到 Plurk!
推到 Facebook!

如何關閉其他應用程式

尚未結案
kkccgg
初階會員


發表:50
回覆:54
積分:30
註冊:2002-07-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-21 02:01:37 IP:203.204.xxx.xxx 未訂閱
例如開記事本而偶要以Delphi程式去做關閉記事本應用程式 謝謝
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-21 07:29:10 IP:211.22.xxx.xxx 未訂閱
用 WM_CLOSE 做搜尋, 就有一些文章可以參考了。 另外參考這篇: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19019 -- Everything I say is a lie.
demon1042001
一般會員


發表:14
回覆:19
積分:6
註冊:2002-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-25 09:48:25 IP:61.220.xxx.xxx 未訂閱
user TlHelp32 var spid:Integer; function ApplicationUse(fName : string) : boolean; var hSS: THandle; ProcEntry32: PROCESSENTRY32; iCount: Integer; begin Result := False; iCount := 0; hSS := CreateToolHelp32Snapshot(TH32CS_SNAPALL, 0); ProcEntry32.dwSize := sizeof(ProcEntry32); if Process32First(hSS, ProcEntry32) then begin repeat if ProcEntry32.szExeFile = fName then begin spid := ProcEntry32.th32ProcessID; Inc(iCount); if iCount >= 1 then begin Result := True; Break; end; end; until not Process32Next(hSS, ProcEntry32); CloseHandle(hSS); end; if Result then Exit; end; function KillSelectedProcess(PID:integer):String; var PH : THandle; lpExitCode : DWord; hProcess : Cardinal; begin hProcess := Int64(PID); PH := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,FALSE, hProcess); if PH <> 0 then begin if GetExitCodeProcess(PH, lpExitCode) then TerminateProcess(PH, lpExitCode) else Result := 'Could not retreive the ExitCode for this process.'; CloseHandle(PH); end else Result := 'Could not get access to this process.' end; 先 if ApplicationUse('notepad.exe') then KillSelectedProcess(spid); ps:如果你是要將所有notepad.exe都kill... 那就要改寫一下,依序將每一個spid傳入KillSelectedProcess();
kkccgg
初階會員


發表:50
回覆:54
積分:30
註冊:2002-07-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-25 22:43:45 IP:203.204.xxx.xxx 未訂閱
謝謝以上的回應,但我試了還是不行我是用98然後要關閉vb所編成的 Exe
cbrskimo
一般會員


發表:9
回覆:14
積分:4
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-08 11:18:29 IP:211.21.xxx.xxx 未訂閱
試試看下列就可把程式關閉:    filename:='xxx';// 程式為 xxx.exe ,注意此不要加 .exe HWnd:=FindWindow(nil, pchar(filename)); if HWnd <> 0 then  SendMessage(HWnd, WM_CLOSE, 0, 0);    
引言: 謝謝以上的回應,但我試了還是不行我是用98然後要關閉vb所編成的 Exe
yamapig
一般會員


發表:12
回覆:47
積分:21
註冊:2002-03-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-10-09 00:30:28 IP:218.164.xxx.xxx 未訂閱
引言: 試試看下列就可把程式關閉: filename:='xxx';// 程式為 xxx.exe ,注意此不要加 .exe HWnd:=FindWindow(nil, pchar(filename)); if HWnd <> 0 then SendMessage(HWnd, WM_CLOSE, 0, 0);
引言: 謝謝以上的回應,但我試了還是不行我是用98然後要關閉vb所編成的 Exe
我用demon1042001兄的範例,確實可以!之前試也發現不行,然後發現在 if ProcEntry32.szExeFile = fName then begin ...... 這個if 的判斷式竟會區分大小寫,所以你只要改成 if UpperCase(ProcEntry32.szExeFile) = UpperCase(fName) then begin ..... 就可以了,只是印象中Delhpi是不區分大小寫的....真奇怪!
靜中見真境 淡中識本然
------
靜中見真境 淡中識本然
系統時間:2024-03-28 17:57:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!