可可可访问性API,我可以单击背景中的一个窗口而不激活它吗?
-
02-10-2019 - |
题
我一直在寻找解决方案的方法,所以我认为我会寻找比我的大脑更大的脑力。我正在开发一个可可应用程序,该应用使用可访问性API操纵另一个程序(这是Hotkey应用程序)。我控制的应用程序通常会打开多个窗口,其中一些隐藏在其他后面。如果可能的话,我想做的是使用可访问性API以按下窗口中的一个按钮将鼠标事件发送到Windows,而无需将其带到前景(与窗口进行交互,但不要激活它) 。我要这样做的原因是,将鼠标事件发送到另一个窗口会将其迫使其前景并破坏用户与最重要窗口的互动。
这在Windows上是可能的 - 显然,因为类似于我的应用程序在那儿做 - 但是考虑到窗口管理器的工作方式,我感到无法使用可可。我误会了吗?
解决方案
可访问性高于此。例如,您发送 AXPress
动作 AXButton
对象,但“按”不一定是单击 - 例如,在视图集中时将空格栏定为“按下”也是“按下”。 AXPress
是一种高级动作,意为“做您的事情”,显然对某些视图(例如按钮)而不是其他视图(例如字段)具有意义。
当您从预期目的查看应用程序时,可访问性激活该应用程序确实很有意义:残疾用户的辅助设备。如果用户通过任何方式“按”某些东西,他们可能打算激活应用程序并在其中工作。
石英事件服务 会带你 几乎 那里:你可以 为要控制的过程创建事件点击, ,您可以伪造事件, 将它们发送到水龙头. 。捕获是 您只能在水龙头开火时将事件发送到水龙头- ie,当应用程序已经有一个事件要处理时。如果没有,你就卡住了。
不隶属于 StackOverflow