c# - 使用 VSTO 加载项以编程方式获取功能区列表
问题描述
我使用 Visual Studio 2019 创建了一个 C# VSTO 加载项,该加载项从套接字连接接收命令,并且它可以插入文本,仅使用 office Interop 在我的功能区中修改按钮。
我想知道两件事。
- 如何以编程方式获取所有功能区(主页、插入、设计……)的名称?
- 在我创建的功能区以外的任何其他功能区上启动鼠标单击(例如单击主页选项卡中的粗体按钮)。
对于第二个问题,我只想使用 office 插件,而不是通过模拟按键/鼠标事件。
解决方案
如何以编程方式获取所有功能区(主页、插入、设计……)的名称?
完成这项工作没有简单的方法。您可以尝试使用Accessibility API。Microsoft Active Accessibility
是一种基于组件对象模型 (COM) 的技术,可改进辅助功能与在 Microsoft Windows 上运行的应用程序一起工作的方式。它提供了集成到操作系统中的动态链接库以及一个 COM 接口和 API 元素,这些元素提供了可靠的方法来公开有关 UI 元素的信息。
在我创建的功能区以外的任何其他功能区上启动鼠标单击(例如单击主页选项卡中的粗体按钮)。
您可以使用CommandBars.ExecuteMso方法来执行由idMso
参数标识的控件。此方法在特定命令没有对象模型的情况下很有用。适用于内置buttons
、toggleButtons
和splitButtons
. 失败时,它为无效的 idMso 返回 E_InvalidArg,为未启用或不可见的控件返回 E_Fail。
Application.CommandBars.ExecuteMso("Copy")
推荐阅读
- jenkins - 任何用于 SAP Hybris 应用程序开发自动化的开源工具?
- c# - 使用泛型 IProcess
需要 1 个类型参数 - 如何返回通用接口? - android - 如何将位置发送到 Firestore 并根据距离获取位置?
- git - 将 gitlab CI/CD 预定义变量作为参数传递给 Qt 中的 .pri 文件
- java - 在 Mojo 的 gwt-maven-plugin 中配置 AppWidgetset.gwt.xml 的位置
- python - Python从字符串列表中获取一个元素
- google-cloud-platform - gcloud 客户端有没有办法为项目定义预算?
- javascript - Jquery点击事件在Vuejs中触发了两次
- python - 如何删除数组的外部列表?
- c++ - 通过 TF1 库创建绘图