可以判断NSApplicationActivationPolicyProhibited应用程序是否处于活动状态?

时间:2012-11-25 05:28:02

标签: windows cocoa background multi-touch juce

将JUCE与TUIO一起使用,我正在开发一个多点触控实用程序,将“热键”命令发送到其他应用程序(我使用的是发送TUIO消息的USB触摸框)。例如,我提供了一个界面,用户可以通过该界面触摸并按住以编写按键组合,然后点击该按钮将编程的按键组合发送到另一个应用程序。我在OSX上实现这一点的方法是将我的实用程序作为“仅后台”应用程序(NSApplicationActivationPolicyProhibited)运行。我使用[NSWindow setCanHide: NO],因此即使它作为后台应用程序运行,我的实用程序的GUI也是可见的。

除了来自另一个应用程序的窗口位于我的顶部之外,它的效果很好。会发生什么事情是触摸通过其他应用程序传递到我的应用程序中的无意按钮推送。通常情况下,只要活动应用程序[NSApp isActive],我就可以让我的应用程序只收听TUIO touch回调。但是,由于我的应用程序只是背景,它永远不会活动,我无法分辨是否有另一个窗口覆盖它以防止触摸。

那么,有没有办法让“仅背景”的应用程序能够判断它是否在所有其他窗口之上?或者,我的应用程序中是否有一种方法可以从其他应用程序获取所有Cocoa窗口的列表,并能够判断它们是否出现在我的“仅背景”应用程序之上?

此外,有谁知道我将如何在Windows中进行上述所有操作?换句话说,Windows等价于NSApplicationActivationPolicyProhibited是什么,我是否可以判断它是否被其他应用程序的窗口覆盖?

0 个答案:

没有答案