C# 禁用Word中的另存为

C# 禁用Word中的另存为,c#,ms-word,office-interop,C#,Ms Word,Office Interop,我需要在word中禁用SaveAs或阻止用户更改文件名 我的应用程序允许用户使用我为其提供的标题创建邮件合并文档。当用户只是简单地保存并退出Word时,这就起作用了。如果用户另存为,则应用程序将锁定 我正在使用Microsoft.Office.Interop.Word //MyWordApp & doc is initialized. MyWordApp.Application.Visible = true; While(WordIsOpen())//Holds executi

我需要在word中禁用SaveAs或阻止用户更改文件名

我的应用程序允许用户使用我为其提供的标题创建邮件合并文档。当用户只是简单地保存并退出Word时,这就起作用了。如果用户另存为,则应用程序将锁定

我正在使用
Microsoft.Office.Interop.Word

 //MyWordApp & doc is initialized.

 MyWordApp.Application.Visible = true;

 While(WordIsOpen())//Holds execution here while User is editing in Word
 {
 }
WordIsOpen定义:

 public bool WordIsOpen()
 {
       if (MyWordApp.Application.Visible)//Locks up here
       {
           return true;
       }
       else
           return false;
 }
锁定:

 //I have a BeforeSave event that Saves the doc and quits Word

 DocumentBeforeSave(Doc, SaveAsUI, Cancel)
 {
      //Save Doc

      MyWordApp.Quit(ref objFalse, ref objNull, ref objNull);//Also, Locks up here
 }

我不完全确定最终是什么导致了这个问题。我确定这与COM行为有关。在调试模式下使用Interop一词时存在已知错误。我遇到的唯一可能解决此问题的方法是拦截SaveAs之前或之上发生的COM事件。我没有实施该解决方案,所以我不知道其中涉及到什么。

我不完全确定最终是什么导致了这个问题。我确定这与COM行为有关。在调试模式下使用Interop一词时存在已知错误。我遇到的唯一可能解决此问题的方法是拦截SaveAs之前或之上发生的COM事件。我没有实现该解决方案,因此我不知道其中涉及到什么。

为什么不修复它,使应用程序不会锁定?确定应用程序锁定的原因并修复它,这难道不是更有意义吗?我已经尝试过修复它。我改变了我做这件事的方式。循环了一整圈,回到了你在这里看到的方法。你在退出应用程序之前关闭文档吗?我没有。刚刚尝试过,它抛出了一个
RPC服务器不可用。(来自HRESULT:0x800706BA的异常)
doc.close()上的异常。为什么不修复它以使应用程序不会锁定?确定应用程序锁定的原因并修复它是否更有意义?我已经尝试过修复它。我改变了我做这件事的方式。循环了一整圈,回到了你在这里看到的方法。你在退出应用程序之前关闭文档吗?我没有。刚刚尝试过,它抛出了一个
RPC服务器不可用。(来自HRESULT:0x800706BA的异常)
文档关闭()上的异常。