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

如何把TRYICON的程式關閉

缺席
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-28 09:44:14 IP:202.181.xxx.xxx 未訂閱
請問我寫了一個程式,縮小在工作列右下角,但是我想把此程式關閉時,要如何做??我使用FINDFORM時找不到,因為他縮小在工作列了..
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-28 10:33:50 IP:147.8.xxx.xxx 未訂閱
Since it is your own program, you should be able to obtain its handle, right? So a suggestion is: Assume your program tray is A and you want to quit A using program B. 1) In A, when starts up, store its handle to a file (or a memory mapped file) 2) In B, grab A's handle from the file send a quite message to A. There are other methods like using socket/DDE etc... i.e. A listen and B send the quit command.
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-28 10:39:32 IP:202.181.xxx.xxx 未訂閱
我的程式是會自動更新資料,我想在它更新完資料後,就結束程式.... 請問要如何做???
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-28 10:50:08 IP:61.155.xxx.xxx 未訂閱
VAR    h, t: HWND;    d: DWORD; begin   h := FindWindow(nil, 'Project1'); if h<>0 then begin GetWindowThreadProcessId(h, @d); t := OpenProcess(PROCESS_ALL_ACCESS,false,d); TerminateProcess(t, 0); end; end; 比如将已经运行Project1.exe,关闭! try~ 或许对您有帮助哦
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-28 11:16:53 IP:202.181.xxx.xxx 未訂閱
引言: VAR h, t: HWND; d: DWORD; begin h := FindWindow(nil, 'Project1'); if h<>0 then begin GetWindowThreadProcessId(h, @d); t := OpenProcess(PROCESS_ALL_ACCESS,false,d); TerminateProcess(t, 0); end; end; 比如将已经运行Project1.exe,关闭! try~ 或许对您有帮助哦
因為我的程式是Tryicon根本就FindWindow無效,所以關不到視窗,請問還有其他方法嗎
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-28 11:25:27 IP:202.181.xxx.xxx 未訂閱
因為我的程式是Tryicon根本就FindWindow無效,所以關不到視窗,請問還有其他方法嗎
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-28 11:31:40 IP:61.155.xxx.xxx 未訂閱
cyl: 在状态兰的图标上加上右键菜单功能,不就可以关闭了吗
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-28 11:50:06 IP:147.8.xxx.xxx 未訂閱
引言: 我的程式是會自動更新資料,我想在它更新完資料後,就結束程式.... 請問要如何做???
So it should quit itself? not from other program.
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-28 17:52:04 IP:202.181.xxx.xxx 未訂閱
對啊!!是自己關閉自己,在Win98時,用Popmenu會關不掉,但是XP ,win2000都沒問題??
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-08-29 12:34:46 IP:147.8.xxx.xxx 未訂閱
Used any particular component? I remember someone metioned that using FastNet component may cause problem. BTW, used OnCloseQuery event?
JackTasy
初階會員


發表:22
回覆:97
積分:28
註冊:2002-06-06

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-09-11 23:56:59 IP:211.76.xxx.xxx 未訂閱
嗯,我也遇到類似問題,不過不太一樣。 我也是把程式寫成 TrayIcon 形式,並非用任何外部元件而是 Windows API達成此效果。 關閉的話自己用 Popup Menu 是沒問題,但電腦直接關機的話常常該程式不會被關掉,所以電腦也就無法順利關機,必須人工介入按滑鼠右鍵關掉該程式後,才能再順利關機。 我曾經試著攔截 Windows Message ,判斷若為關閉訊號就自己用把程式關掉,不過我覺得這樣並不好,因為 Message 太多了可能會影響效能,希望能看到更好的解決方法。 JackTasy
------
JackTasy
系統時間:2024-05-16 7:07:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!