請問呼叫外部執行檔並等待結束的問題(ShellExecute) |
尚未結案
|
willchen
初階會員 發表:64 回覆:81 積分:29 註冊:2003-05-23 發送簡訊給我 |
void __fastcall TForm1::Button1Click(TObject *Sender) { //確定路徑檔名正確 String s= "C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE"; DWORD rt; STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb=sizeof(si); ZeroMemory(&pi, sizeof(pi)); if(!CreateProcess(NULL,s.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { ShowMessage("CreateProcess failed!" IntToStr(GetLastError())); } do { //修改成do while迴圈來等待 rt = WaitForSingleObject(pi.hProcess, 0); //這裡不等待 Application->ProcessMessages(); Sleep(100); } while( rt == WAIT_TIMEOUT); //是否timeout? CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); ShowMessage("WinWord terminate!"); }剛剛查了一下,是包子哥的回答,但此方法是使用Create Process的方法,可以改成ShellExecute的方式嗎??剛剛看了版上的文章,好像換成ShellExecute會出問題,那一定得使用CreateProcess嗎?? |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言:willchen 你好: 有關這個問題,這幾天才剛被討論過 (在 Delphi 版面),請參考以下連結文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=38858 -- Enjoy Researching & Developing --void __fastcall TForm1::Button1Click(TObject *Sender) { //確定路徑檔名正確 String s= "C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE"; DWORD rt; STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb=sizeof(si); ZeroMemory(&pi, sizeof(pi)); if(!CreateProcess(NULL,s.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { ShowMessage("CreateProcess failed!" IntToStr(GetLastError())); } do { //修改成do while迴圈來等待 rt = WaitForSingleObject(pi.hProcess, 0); //這裡不等待 Application->ProcessMessages(); Sleep(100); } while( rt == WAIT_TIMEOUT); //是否timeout? CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); ShowMessage("WinWord terminate!"); }剛剛查了一下,是包子哥的回答,但此方法是使用Create Process的方法,可以改成ShellExecute的方式嗎??剛剛看了版上的文章,好像換成ShellExecute會出問題,那一定得使用CreateProcess嗎??
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |