C# 我是否可以为Outlook 2016禁用\启用内联响应按钮(预览窗格按钮Reply/ReplyAll/Forward)?

C# 我是否可以为Outlook 2016禁用\启用内联响应按钮(预览窗格按钮Reply/ReplyAll/Forward)?,c#,winapi,outlook,outlook-addin,ui-automation,C#,Winapi,Outlook,Outlook Addin,Ui Automation,我正在创建Outlook插件 如何在下一个图像中禁用Outlook 2016的\endable按钮(回复/回复/转发) 在Outlook 2013中,后台GUI是不同的。此按钮是工具栏的一部分,工具栏具有句柄,它允许使用WinAPI操作按钮启用\禁用状态 但在Outlook 2016中,工具栏被替换为不同的控件 现在是: 面板(有把手) 分组控件(没有句柄) 按钮(没有手柄) 我使用UI自动化类找到了这些信息 请建议如何操作此按钮的启用状态 可能存在另一个方向,我可以找到解决方案 感谢您的回复

我正在创建Outlook插件

如何在下一个图像中禁用Outlook 2016的\endable按钮(回复/回复/转发)

在Outlook 2013中,后台GUI是不同的。此按钮是工具栏的一部分,工具栏具有句柄,它允许使用WinAPI操作按钮启用\禁用状态

但在Outlook 2016中,工具栏被替换为不同的控件

现在是:

面板(有把手)

分组控件(没有句柄)

按钮(没有手柄)

我使用UI自动化类找到了这些信息

请建议如何操作此按钮的启用状态

可能存在另一个方向,我可以找到解决方案


感谢您的回复。

这些按钮无法通过编程方式访问。您可以禁用“转发”/“回复”//etc.操作(
MailItem.Actions
collection),但该按钮仍将被启用,当您尝试单击该按钮时,您将得到一个提示,提示该操作不可用。

我明白了。谢谢Dmitry。我认为这是一种可行的方法,因为对于Outlook 2013,我可以修改启用状态。您在Outlook 2013中的表现如何?我找到了按钮的父控件,获取HWND并使用sendmessage winapi方法禁用或启用它们。但是现在他们修改了GUI,这个方法不起作用了。我认为你没有什么可以做的-如果你只有自动化/可访问性API,你可以查询某个控件是否启用,但是你不能改变它的状态。