Delphi 手动关闭Word应用程序后调用该应用程序将生成;RPC服务器不可用";错误
我的表单上有名为Delphi 手动关闭Word应用程序后调用该应用程序将生成;RPC服务器不可用";错误,delphi,office-automation,word-automation,Delphi,Office Automation,Word Automation,我的表单上有名为App的TWordApplication组件。它的ConnectKind属性设置为ckRunningOrNew,AutoConnect属性为True。当我的程序完成时,Word窗口出现在屏幕上,在完成一些任务后,我关闭它。下一次调用App会产生主题错误,即使我调用Disconnect procedure ReportButtonClick(Sender: TObject); var Doc: _Document; { Some other variables } begi
App
的TWordApplication
组件。它的ConnectKind
属性设置为ckRunningOrNew
,AutoConnect
属性为True
。当我的程序完成时,Word窗口出现在屏幕上,在完成一些任务后,我关闭它。下一次调用App
会产生主题错误,即使我调用Disconnect
procedure ReportButtonClick(Sender: TObject);
var
Doc: _Document;
{ Some other variables }
begin
App.Disconnect; // calling after closing produces error
App.Connect;
Doc := App.Documents.Add('path_to_template', EmptyParam, EmptyParam, EmptyParam);
{ Working with Doc }
App.Visible := True;
end;
很显然,我不应该关闭文字,但我的客户认为守口如瓶,对他们来说并不方便。我试图抓住这个例外,但没有成功
我应该如何处理这种情况?使用D7和Word2007,以下代码通过单击标题栏上的[x]或从其菜单中关闭来阻止用户关闭MS Word:
procedure TDefaultForm.WordApplication1DocumentBeforeClose(ASender: TObject;
const Doc: _Document; var Cancel: WordBool);
begin
Cancel := True;
end;
,但显然,您希望向用户通知发生这种情况的原因
但是,如果没有打开文档,则不会阻止Word关闭
作为防止Word关闭的替代方案,显然您可以禁用应用程序的Word自动功能,完成正在进行的任何操作,或者完全关闭应用程序。我假设您知道如何在Word中获取活动文档、当前文本选择等