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

啟動Word後要如何得知某個檔案目前是開啟而拒絕開啟?

答題得分者是:hagar
Sei
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-11 15:55:29 IP:61.30.xxx.xxx 未訂閱
請教前輩: 以下是我要呼叫Word並開檔的Source code ---------------------------------------------------- try if VarIsEmpty(WordAp) then WordAP := CreateOleObject('Word.Application') else WordAP := GetActiveOleObject('Word.Application'); except WordAP := CreateOleObject('Word.Application'); end; WordAP.Visible := True; WordAp.Documents.Open(FileName := 'C:\abc.doc'); ---------------------------------------------------- 第一次執行我開啟了一個abc.doc,可是我可以選擇要不要關閉abc.doc 當我不關閉abc.doc,第二次再呼叫如上面那段程式 我要如何得知abc.doc目前是開啟的,不要執行WordAp.Documents.Open(FileName := 'C:\abc.doc');這段程式?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-11 17:48:13 IP:202.39.xxx.xxx 未訂閱
這個不知行不行得通?
function IsFileInUse(FileName: TFileName): Boolean; 
var 
   HFileRes: HFILE; 
begin 
   Result := False; 
   if not FileExists(FileName) then Exit; 
   HFileRes := CreateFile(PChar(FileName), 
                         GENERIC_READ or GENERIC_WRITE, 
                         0, 
                         nil, 
                         OPEN_EXISTING, 
                         FILE_ATTRIBUTE_NORMAL, 
                         0); 
   Result := (HFileRes = INVALID_HANDLE_VALUE); 
   if not Result then 
      CloseHandle(HFileRes); 
end; 
--- Have you ever wondered what it would be like?
Sei
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-11 18:11:37 IP:61.30.xxx.xxx 未訂閱
謝謝hagar兄的回答,這段程式很完美的達到效果 我之前很死腦筋一直在Word的語法上打轉,直覺應該只是一句語法 就沒有想過要繞別的路走,沒想到花了蠻多時間,也曾透過呼叫巨集的寫法去判斷,路愈繞愈長,開了一堆不相關的檔案,現在看到您的程式片段好像清醒了一點,感謝您的指點!    
引言: 這個不知行不行得通?
function IsFileInUse(FileName: TFileName): Boolean; 
var 
   HFileRes: HFILE; 
begin 
   Result := False; 
   if not FileExists(FileName) then Exit; 
   HFileRes := CreateFile(PChar(FileName), 
                         GENERIC_READ or GENERIC_WRITE, 
                         0, 
                         nil, 
                         OPEN_EXISTING, 
                         FILE_ATTRIBUTE_NORMAL, 
                         0); 
   Result := (HFileRes = INVALID_HANDLE_VALUE); 
   if not Result then 
      CloseHandle(HFileRes); 
end; 
--- Have you ever wondered what it would be like?
系統時間:2024-04-28 0:44:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!