为了账号安全,请及时绑定邮箱和手机立即绑定

从控制台应用程序打开文档时,可以禁用Word按钮吗?

从控制台应用程序打开文档时,可以禁用Word按钮吗?

C#
红颜莎娜 2021-03-28 13:14:01
我正在使用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中打开它们。


查看完整回答
反对 回复 2021-04-10
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信