1

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

我的应用程序允许用户使用我为他们提供的标头创建 MailMerge 文档。这适用于用户只是简单地保存并退出 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
 }
4

1 回答 1

1

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

于 2012-08-10T15:51:55.860 回答