我一直在寻找一段时间,每个人似乎都认为只使用Java是不可能的,所以我会给出一个镜头;)

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

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

由于

有帮助吗?

解决方案

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

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

其他提示

以下是我找到的最佳答案:

" 有一个库来处理本机键盘和鼠标控制: https://github.com/kwhat/jnativehook ) "

我也没有办法解决这个问题。我确实在Java论坛上找到了这个链接,并提供了一个如何设置的好例子JNI的东西,并制作一个全局键盘处理程序(这里添加太多了)。它有点过时(2005年),但这个例子看起来足够让你开始。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top