禁用Word中的SaveAs

时间:2012-07-16 20:08:02

标签: c# ms-word office-interop

我需要在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
 }

1 个答案:

答案 0 :(得分:1)

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