CreateProcess 和 CloseHandle 如何使用 |
答題得分者是:taishyang
|
wangccw
一般會員 發表:21 回覆:39 積分:17 註冊:2005-01-30 發送簡訊給我 |
要執行一個外部程式,想要射後不理(即執行後不管有沒有成功,皆繼續下一行),這樣我就有一個疑問。
[code delphi] procedure dgCreateProcess(const FileName: string); var ProcInfo: TProcessInformation; StartInfo: TStartupInfo; begin FillMemory(@StartInfo, sizeof(StartInfo), 0); StartInfo.cb := sizeof(StartInfo); CreateProcess( nil, PChar(FileName), nil, Nil, False, NORMAL_PRIORITY_CLASS, nil, nil, StartInfo, ProcInfo); CloseHandle(ProcInfo.hProcess); CloseHandle(ProcInfo.hThread); end; [/code] 上面函式是我從網路找到的範例先用 CreateProcess 之後就立即呼叫 CloseHandle ,我的疑問是,我的那個外部程式雖然是射後不理,但我並不確定 那個外部程式是否已經執行完畢就直接呼叫 CloseHandle ,這樣不會有問題嗎? |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
wangccw
一般會員 發表:21 回覆:39 積分:17 註冊:2005-01-30 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
那採用ShellExecute這API即可
另外這連結 http://groups.google.com/group/comp.os.ms-windows.programmer.misc/browse_thread/thread/b14437d305f2a7e1 裡面說到: If you don't care what happens to the created application, nor what happens to it, you can close both the process handle and the thread handle immediately after calling CreateProcess().
編輯記錄
taishyang 重新編輯於 2010-04-08 12:19:02, 註解 無‧
|
wangccw
一般會員 發表:21 回覆:39 積分:17 註冊:2005-01-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |