線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1947
推到 Plurk!
推到 Facebook!

怎样判断一个文件已打开?

答題得分者是:pillar62
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-18 10:01:24 IP:218.80.xxx.xxx 未訂閱
我把一个WORD文件保存进数据库的一个字段中,然后用下列代码开启它
 ShellExecute(Application.handle, pchar('OPEN'), pchar(sPostFixName), nil, nil, SW_SHOWNORMAL);
但是如果这个WORD没有关闭,再按一次开启会报错,请问应该怎么解决这个问题?
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-18 10:21:59 IP:210.64.xxx.xxx 未訂閱
你好 執行shellexecute之前先用這一段function 判斷 檔案是否開啟,試試看吧!!
function IsFileUsed(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;    
Pillar Wang
------
Pillar Wang
系統時間:2024-07-04 21:26:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!