我正在寻找一种方法来检测是否打开了功能区库。我正在使用Delphi Ribbon Framework,它实现了IUICollection。我使用IUIFramework.GetUICommandProperty(例如UI_PKEY_Viewable,UI_PKEY_Enabled)尝试了几个属性,但这两个属性都没有返回"打开/关闭"画廊下拉状态。
有人知道这是否可行?
答案 0 :(得分:0)
我可以使用IAccessible
界面解决这个问题。
(见https://msdn.microsoft.com/en-us/library/windows/desktop/dd318466(v=vs.85).aspx)
幸运的是,我们已经具备了查找特定UI元素的功能。它使用单元AccessibleObjectFromWindow;
中的Winapi.oleacc
从主应用程序窗口句柄中检索IAccessible
对象。
从那里,它使用AccessibleChildren
递归检查子项,如下所述:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd317975(v=vs.85).aspx
并将当前元素的名称与给定参数进行比较。
作为参数,我使用图库中第一项的标题。此项仅在图库打开时可用,因此使用我们的自定义“FindElement”功能,我能够区分可见的弹出窗口和关闭的弹出窗口。
这可能不是最好的解决方案,但我担心没有其他的......