我已经搜索了一段时间,每个人似乎都认为仅使用 Java 是不可能的,所以我会试一试;)
有没有办法让我的 Java 应用程序在另一个不相关的应用程序具有窗口焦点时侦听事件(特别是关键事件)?在我的情况下,即使我的 Java 应用程序没有焦点,我也希望检测用户何时按下了键盘上的“暂停”键。
我听说有人提到唯一的方法是编写一些 C 代码并使用 JNI。只是好奇是否有人知道避免这种情况的方法?或者,如果没有,至少有一个关于 c/JNI 内容的非常好的教程?
谢谢
我的理解是这是不可能的。从根本上讲,JVM 只为它接收到的 O/S 事件生成事件,并且只有在它有焦点时才接收 O/S 输入事件。
我确信你可以使用 JNI 来触发 O/S 为所有输入生成事件,但这将非常依赖于 O/S。
+1。如果有一种方法可以在没有 JNI 或 JVM 之外的其他访问的情况下做到这一点,我会感到非常惊讶。
您可以使用 com.melloware.jintellitype 包中的类。比您可以一直捕获关键输入。但是您需要为本机函数添加一些 .dll 文件。