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

关於关闭进程问题

尚未結案
mchakuna
一般會員


發表:41
回覆:45
積分:17
註冊:2004-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-08 16:31:07 IP:211.147.xxx.xxx 未訂閱
我用了createprocess来启动一个外部的程序, 关闭时用TerminateProcess来关闭程序。但这样会带来一个问题。这种方式是强制进程关闭,而不是通知程序去结束自身及进行一些善后工作。因此,往往外部程序在结束时会掉失数据。有没有方法解决? 注:在我的程序中,有一个外部文件选择器让用户选择被执行的外部程序路径。
seaturn99
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-08 22:56:35 IP:211.76.xxx.xxx 未訂閱
引言: 我用了createprocess来启动一个外部的程序, 关闭时用TerminateProcess来关闭程序。但这样会带来一个问题。这种方式是强制进程关闭,而不是通知程序去结束自身及进行一些善后工作。因此,往往外部程序在结束时会掉失数据。有没有方法解决? 注:在我的程序中,有一个外部文件选择器让用户选择被执行的外部程序路径。
"溫和" 一點.. 如果是 Window (費點功夫,找到 hWND)... 利用 SendMessage => 送出 WM_CLOSE 或是 WM_DESTORY .. 如果不是,就利用 AddExitProc 試看看,能不能做離開前的補救.. 可以參考看看下面連結的文章.. http://delphi.ktop.com.tw/topic.php?TOPIC_ID=43237 ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ----
mchakuna
一般會員


發表:41
回覆:45
積分:17
註冊:2004-01-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-23 01:24:20 IP:211.147.xxx.xxx 未訂閱
该问题本来已经解决。但最近我重新考虑来制作一个用来关系进程的程序。该程序将从系统当前运行的所有进程中找出来我需要的进程,并获得相应窗口的handle。这样我就可以在我的程序中关闭这些进程了。我是通过向这些进程对应的窗体发送WM_CLOSE这个信息来实现的。但很奇怪,有些程序就是无法关闭。 例如,IE。用SendMessage发送WM_CLOSE似乎不起任何作用。但我在本forum上找到一个post,有人说用PostMessage可以解决问题。但仍不行。 第二种情况是如果一个程序被缩小到tray上,则也不响应这个WM_CLOSE消息。 请教大家怎样解决?谢谢。
系統時間:2024-05-22 1:21:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!