我查看了ActiveControlList,但不幸的是,这不是一种可靠的方式来告诉活动功能区。 具体来说,我正在寻找一种可靠的方法来判断方程工具功能区是否在OneNote中处于活动状态。 你有什么建议吗?
答案 0 :(得分:3)
功能区不是普通控件,可能很难使用普通VBA或内置COM,但您可以使用Microsoft的Active Accessibility API
您可以使用Acc lib,因此您无需了解所有dll电话
但是你仍然需要知道你需要哪些部分,以及要真正使用它的方法。您可以使用jethrows AccViewer它会告诉您Role,State,ChildCount等元素,因此当您找到之后的项目时,您可以使用accViewer提供的树或路径。 / p>
Word功能区路径示例:4.3.4.1.4.1.4.1.4.1.4.13.1.1
OneNote:4.3.4.1.4.1.4.1.4.1.4.10.1.1
以下是示例,使用Acc_get()在按下F6时显示OneNote PP 2010中的当前功能区名称
f6::
name := Acc_Get("Name", "4.3.4.1.4.1.4.1.4.1.4.10.1.1", 0, "Ahk_class Framework::CFrame")
tooltip % name
return
注意:此路径适用于固定功能区,即始终可见
答案 1 :(得分:0)
据我所知,Ribbon GUI没有特定的命令。
使用ImageSearch检测功能区GUI中的更改。您可以使用已激活的“公式工具”控件的ImageSearch图像进行搜索,如果找到它,则会将ErrorLevel
设置为1
。
此外,始终使用来自http://ahkscript.org/的AutoHotkey及其文档(当前最新版本,新官方网站)! Autohotkey.com上的AutoHotkey及其文档已过时,使用它们可能会遇到一些问题!