啟動Word後要如何得知某個檔案目前是開啟而拒絕開啟? |
答題得分者是:hagar
|
Sei
一般會員 發表:22 回覆:38 積分:17 註冊:2002-05-22 發送簡訊給我 |
請教前輩:
以下是我要呼叫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 發送簡訊給我 |
這個不知行不行得通?
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 發送簡訊給我 |
謝謝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? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |