小编Sem*_*lev的帖子

等到文件编辑结束

我有下一个任务.有必要等待结束编辑Microsoft Office文件.我使用下一个传统方法:文件正在编辑文件繁忙时:

function FileIsBusy(AFileName: string): Boolean;
var
  F: Integer;
begin
  F := FileOpen(AFileName, fmShareExclusive);
  Result := F = -1;
  FileClose(F);
end;

function WaitFile(AFileName: string; ASpeepDelay: integer): Boolean;
begin
  while FileIsBusy(AFileName) do
    Sleep(ASpeepDelay);
  Result := True;
end;
Run Code Online (Sandbox Code Playgroud)

这种方法很适合使用Microsoft Word编辑文件,而不是Open Office.OpenOffice像MS Office一样使用一个进程来打开多重文件.但是OpenOffice Writer有一些问题:函数FileIsBusy在OpenOffice Writer 首次保存文件后返回false .有什么建议吗?

============================

我找到下一个解决方案

  repeat
    WaitFile(FFileInfo.lpFile, 333);
    Sleep(1000);
  until not FileIsBusy(FFileInfo.lpFile);
Run Code Online (Sandbox Code Playgroud)

保存后,ОО发布文件一段时间并再次独占分享

delphi openoffice.org shellexecuteex

3
推荐指数
1
解决办法
1370
查看次数

为Delphi 7 IDE编写脚本

Delphi是否有能力编写IDE操作的脚本?我想在open delphi项目上执行脚本打开一些单元.我怎么能这样做

delphi scripting delphi-7

0
推荐指数
1
解决办法
714
查看次数