Warm tip: This article is reproduced from serverfault.com, please click

其他-Java 中的事件侦听器而应用程序没有焦点?

(其他 - Event listener in Java without app having focus? (Global keypress detection))

发布于 2009-04-29 03:20:16

我已经搜索了一段时间,每个人似乎都认为仅使用 Java 是不可能的,所以我会试一试;)

有没有办法让我的 Java 应用程序在另一个不相关的应用程序具有窗口焦点时侦听事件(特别是关键事件)?在我的情况下,即使我的 Java 应用程序没有焦点,我也希望检测用户何时按下了键盘上的“暂停”键。

我听说有人提到唯一的方法是编写一些 C 代码并使用 JNI。只是好奇是否有人知道避免这种情况的方法?或者,如果没有,至少有一个关于 c/JNI 内容的非常好的教程?

谢谢

Questioner
Ross
Viewed
11
Lawrence Dol 2009-04-29 12:42:27

我的理解是这是不可能的。从根本上讲,JVM 只为它接收到的 O/S 事件生成事件,并且只有在它有焦点时才接收 O/S 输入事件。

我确信你可以使用 JNI 来触发 O/S 为所有输入生成事件,但这将非常依赖于 O/S。