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