C# 禁用Word中的另存为
我需要在word中禁用SaveAs或阻止用户更改文件名 我的应用程序允许用户使用我为其提供的标题创建邮件合并文档。当用户只是简单地保存并退出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
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的异常)
文档关闭()上的异常。