Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 手动关闭Word应用程序后调用该应用程序将生成;RPC服务器不可用";错误_Delphi_Office Automation_Word Automation - Fatal编程技术网

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中获取活动文档、当前文本选择等