我希望能够在按下某个键时结束我的程序(对于这个例子,我们将说当按下k时).我知道这可以通过使用JFrame和KeyListener来完成,但希望我的监听器能够在后台运行.我的程序当前修改了word文档,这意味着活动窗口不是JFrame,因此它不会记录按下的键.缓冲读取器也不是前面提到的选项,正在运行的java程序不是选定的窗口.我花了很多时间研究不同的方法,但是我发现的是用AWTEvents按下鼠标的方法
在最糟糕的情况下,我将检查是否按下第二个鼠标按钮然后结束我的代码,但理想情况下我想在按下的键上结束它.任何帮助都会很棒,评论任何澄清.
解决方法:
…I know that this could be done by using JFrame and KeyListener
不,您几乎不会将KeyListener添加到JFrame,或者在Swing GUI中使用KeyListener,即使您想要在活动GUI中监听击键.
but want this my listener to run in the background.
然后你正在寻找一个键盘记录器,并需要挂钩键盘输入,这是普通的核心Java无法完成的.
我这样做的最简单方法是使用另一种语言,如AutoIt脚本语言(如果这是Windows),然后让我的AutoIt通过标准输入和输出套接字通知我的Java程序.
更困难的解决方案(对我来说)是使用C或C编写自己的键盘钩子,然后通过JNI或JNA将其链接到Java.无论如何,任何解决方案都必须依赖于平台.