怎样保证被调用的程序由调用者来关闭? |
答題得分者是:Stallion
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
沒辦法!
用「工作管理員」很容易就把程序結束了。 ===================引 用 文 章=================== strCmd:='c:/windows/notepad.exe'; strWorkDir:='.'; 怎样用CreateProcess(nil, PChar(strCmd), @sa, @sa, true, 0, nil, PChar(strWorkDir),tsi, tpi); 在系统关机时,怎样来保证只有当前程序可以结束notepad? |
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
嗯~
應該是無解,A.程式CreateProcess出來B程式,對作業系統來說都是系統中的獨立Process,雖然A程式可以知道B程式的PID,但是現在主動權不是在A,而是在作業系統,當作業系統結束時在系統中的的Process佇列是以怎樣的次序被作業系統結束的不得而知,所以你永遠不能確定B一定是在A之後被結束?反之,就可以在A的OnClose事件中處理B程式關閉的作業了。 ===================引 用 文 章=================== 我不是怕人为的去关闭它,而是怕系统关机时,先强制关闭了被调用的程序(造成系统提示出错),而调用者按正确的方式去关闭它时却发现它已经被关闭了。因为被调用的程序是第三方写的,所以它没办法得知系统关闭的消息。 真的没有办法吗? |
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |