我正在使用C#上的控制台应用程序,该应用程序会接收文档路径并在Microsoft Word 2010上打开它Word.Application oWordApp = new Word.Application(); DisableSaveAsButton(oWordApp); oWordApp.Visible = true; try { Word.Document doc = oWordApp.Documents.Open(docFile); doc.Activate(); } catch (System.Exception e) { Console.WriteLine("Error opening document\n"+ e.ToString() + "\n" +e.StackTrace); }其中docFile是.doc文件路径。我想打开Word,另存为按钮无法激活,变灰且无法使用。我在那边找到了DisableSaveAsButton方法,就像这样:private void DisableSaveAsButton(Word.Application oWordApp) { Object MenuBar = 40; Object FileMenu = 1; Object SaveAsButton = 5; var saveAsBtn = oWordApp.CommandBars[MenuBar].Controls[FileMenu].accChild[SaveAsButton] as CommandBarButton; saveAsBtn.Enabled = false; }但它不会工作。从我所读的内容中,大多数人通过在其项目上编辑Ribbon1.xml来找到此解决方案,但是我的程序是具有Word功能的控制台应用程序,而不是Word加载项,并且它没有任何Ribbon XML文件。 。所以我想知道,是否可以从控制台应用程序中禁用“另存为”按钮(老板要求),而不是使用带有其自己模板的加载项?
1 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
您发现的代码是旧技术-Word 2007以前的版本。CommandBar对象已被Ribbon XML取代,并且用于禁用功能的旧命令不再起作用。这是Microsoft的一项有意识的设计决定。
在较新的功能区界面中,仅在进程中运行的代码也会影响用户界面。因此,您想做的事情是不可能的,至少在没有加载VBA或VSTO加载项的情况下也是不可能的。
如果您不希望用户能够保存他们的工作,那么“阅读器”似乎比使用功能强大的Word应用程序更好,该应用程序首先是一个编辑器。例如,最好将文档保存为PDF文件格式,然后在Acrobat Reader中打开它们。
- 1 回答
- 0 关注
- 126 浏览
添加回答
举报
0/150
提交
取消