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

CreateProcess開啟WORD檔的問題..

尚未結案
syc0121
一般會員


發表:6
回覆:12
積分:3
註冊:2003-01-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-07 10:12:07 IP:61.222.xxx.xxx 未訂閱
請教各位前輩大德們: 小弟使用CreateProcess呼叫一份Word文件檔(例:winword.exe /e c:\123.doc) Word文件檔被載入之前,會先執行Winword.exe Winword.exe啟動時會出現版權宣告畫面後才載入文件...    請問要如何得知WinWord.exe已啟動成功...    用 WaitforSingleObject 嗎?  或是有其它 API 可以使用?    謝謝    
RaynorPao
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-07 10:28:51 IP:203.73.xxx.xxx 未訂閱
引言: 請教各位前輩大德們: 小弟使用CreateProcess呼叫一份Word文件檔(例:winword.exe /e c:\123.doc) Word文件檔被載入之前,會先執行Winword.exe Winword.exe啟動時會出現版權宣告畫面後才載入文件... 請問要如何得知WinWord.exe已啟動成功... 用 WaitforSingleObject 嗎? 或是有其它 API 可以使用? 謝謝 < face="Verdana, Arial, Helvetica"> syc0121 你好: CreateProcess 本身不是有一個傳回值嗎?true 為成功,false 為失敗 建議你自己查詢 M$DN 中的相關說明 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
syc0121
一般會員


發表:6
回覆:12
積分:3
註冊:2003-01-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-07 10:39:30 IP:61.222.xxx.xxx 未訂閱
引言: syc0121 你好: CreateProcess 本身不是有一個傳回值嗎?true 為成功,false 為失敗 建議你自己查詢 M$DN 中的相關說明 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
版主大人您好: 小弟描述得不清楚...造成您的誤解... CreateProcess的確是會傳回一個Boolen 不過當WinWord啟動時,會出現M$的版權宣告畫面.. 是不是有什麼API或方法可以得知WinWord的版權宣告畫面結束呢? 謝謝~
Sei
一般會員


發表:22
回覆:38
積分:17
註冊:2002-05-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-12 08:54:59 IP:61.30.xxx.xxx 未訂閱
不知道這麼回答有沒有離題 在http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26986 hagar大大有幫我解答一篇「啟動Word後要如何得知某個檔案目前是開啟而拒絕開啟?」 我的想法是:既然Word文件存在,WinWord.exe也就啟動 不知道這麼判斷法符不符合??
syc0121
一般會員


發表:6
回覆:12
積分:3
註冊:2003-01-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-12 13:40:00 IP:61.222.xxx.xxx 未訂閱
引言: 不知道這麼回答有沒有離題 在http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26986 hagar大大有幫我解答一篇「啟動Word後要如何得知某個檔案目前是開啟而拒絕開啟?」 我的想法是:既然Word文件存在,WinWord.exe也就啟動 不知道這麼判斷法符不符合??
謝謝指教! 26986這篇小弟已拜讀過了... 是利用偵測檔案是否被鎖定的方式來判斷word是否啟動~ 可以解決我目前遇到的問題~ 小弟的需求是 當開啟"每份文件檔(TXT,DOC..etc)"後, DETECT 該文件檔是否被修改、是否被關閉 先前的做法是 使用 CreateProcess 開啟一份Word文件 利用 WaitForSingleObject 來判斷Word是否結束 遇到的問題如下述二點~~ 1)當Word第一次啟動時會出現宣告畫面,畫面結束後才載入Word文件 而WaitForSingleObject(hProcess,INFINITE)會等到所有的WORD文件都關閉 也就是WinWord.exe被結束 2)不過當Word主程式已被啟動,再用CreateProcess開啟Word文件檔 就不會再出現版權畫面,直接載入Word文件檔 而WaitForSingleObject(hProcess,INFINITE)時都不會再等待 針對上述二點,所以小弟再搭配hager兄提供的 IsFileInUse 這個 Function 來Detect檔案是否還在使用中來判斷檔案被關閉,進而達到小弟的需求 若是沒有出現 M$ 版權宣告畫面 CreateProcess傳回True之後, 小弟先用 IsFileInUse 來判斷 Word 文件檔是否被開啟 若已被開啟,就用while do IsFileInUse來等待WORD文件被關閉 若未被開啟,就用WaitForSingleObject(hProcess,INFINITE)來等待 但是若出現M$版權畫面出現時 CreateProcess已經傳回True 但IsFileInUse卻也是傳回False, 直到版權宣告畫面結束才會傳回True //開啟DOC if CreateProcess(...) then begin //第二次以後執行WINWORD.EXE: 檔案使用中,就偵測檔案何時被FREE if IsFileInUse(...) then begin while IsFileInUse(...) do begin //檔案使用中 end end //第一次執行WINWORD.EXE: WinWord執行中,就偵測WinWord何時被結束 else begin RLT:=WAIT_TIMEOUT; while RLT=WAIT_TIMEOUT do begin RLT:=WaitforSingleObject(hProcess,0); //WinWord執行中 end; end; end;
系統時間:2024-05-22 7:58:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!