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

請問msgwaitformutipleobject怎麼用?

答題得分者是:RaynorPao
sgarda
一般會員


發表:13
回覆:1
積分:2
註冊:2008-07-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-23 09:38:13 IP:118.160.xxx.xxx 訂閱
請問msgwaitformutipleobject怎麼用?有沒有sample code

跟waitforsingleobject有何差

為何我寫

HANDLE hand1;

hand1=ShellExecute(----,"c:\hello.txt" ,-----------------------);
waitforsingleobject(hand1,INFINITE);

hand1=ShellExecute(----,"c:\hello2.txt" ,-----------------------);
////handle change to open the other file


不能讓hello2等hello開啟再執行?若我要改寫成hello.txt開啟後再關掉

產生的觸發再來啟動hello2.txt要怎麼寫?


------
sgarda
編輯記錄
taishyang 重新編輯於 2008-07-23 09:59:34, 註解 無‧
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-23 12:08:51 IP:210.208.xxx.xxx 未訂閱
請使用 CreateProcess (參考以下的範例程式碼,再自行修改)

[code cpp]
AnsiString AppPath=ExtractFilePath(Application->ExeName);
TStringList *sl=new TStringList;
sl->Add("notepad.exe " AppPath "hello.txt");
sl->Add("notepad.exe " AppPath "hello2.txt");
for(int i=0; iCount; i )
{
DWORD rt=0;
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if(!CreateProcess(NULL, sl->Strings[i].c_str(), NULL, NULL, FALSE,
CREATE_NEW_PROCESS_GROUP NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi))
{
ShowMessage("CreateProcess failed!");
return;
}
do
{
rt=WaitForSingleObject(pi.hProcess, 0);
Application->ProcessMessages();
Sleep(100);
} while(rt==WAIT_TIMEOUT);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
delete sl;
[/code]
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-04-23 23:23:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!