MS Word OLE - 如何在不引发异常的情况下访问ActiveDocument?

时间:2010-09-12 15:02:21

标签: ms-word automation ole

在通过OLE的Word自动化中,当访问ActiveDocument属性时,如果当前没有可见文档可用,则会引发异常(至少在Delphi中),因此,我的目标是像IsActiveDocumentValid那样进行一些测试,如何在没有举例外?谢谢!

1 个答案:

答案 0 :(得分:1)

自动化服务器本身引发异常,您无法阻止它。但是,在访问ActiveDocument;

之前,您可以获得开放Documents的计数
WordApplication.Documents.Count

如果没有可用的文件,如果'Count'为0。

修改 或者,您可以静默处理特定的异常,例如(Delphi代码);

function ActiveDocumentExists(WordApplication: Variant): Boolean;
begin
  Result := True;
  try
    WordApplication.ActiveDocument.Activate;
  except on E: EOleException do
    if E.ErrorCode = LRESULT($800A1098) then
      Result := False;
  end;
end;