如何把TRYICON的程式關閉 |
缺席
|
cyl
中階會員 發表:163 回覆:171 積分:66 註冊:2002-07-11 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
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 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
|
cyl
中階會員 發表:163 回覆:171 積分:66 註冊:2002-07-11 發送簡訊給我 |
引言: 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 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
cyl
中階會員 發表:163 回覆:171 積分:66 註冊:2002-07-11 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
JackTasy
初階會員 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
嗯,我也遇到類似問題,不過不太一樣。
我也是把程式寫成 TrayIcon 形式,並非用任何外部元件而是 Windows API達成此效果。 關閉的話自己用 Popup Menu 是沒問題,但電腦直接關機的話常常該程式不會被關掉,所以電腦也就無法順利關機,必須人工介入按滑鼠右鍵關掉該程式後,才能再順利關機。 我曾經試著攔截 Windows Message ,判斷若為關閉訊號就自己用把程式關掉,不過我覺得這樣並不好,因為 Message 太多了可能會影響效能,希望能看到更好的解決方法。 JackTasy
------
JackTasy |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |