【发布时间】:2014-08-06 02:01:44
【问题描述】:
我正在 (ab) 使用 Java 的 Robot 类在浏览器窗口中自动执行一些点击任务。第一次单击时,Java 应用程序失去焦点。如果机器人开始行为不端,我想终止程序。但是,我不能轻易做到这一点,因为机器人可以控制我的鼠标。
我想做的是让我的程序监听来自我的某种信号,告诉它退出。例如,当按下“退出”键时,程序可能会退出。但是,当应用程序不在焦点时,我不知道如何监听击键。
我在 OSX 10.9 中运行 Java SE 6。
在这些情况下,我如何能够终止我的程序?
编辑:发布后,我发现了一个解决相同问题的相关问题:Listening for input without focus in Java。 (但是,这不是完全重复的,因为我的问题有点广泛。)
【问题讨论】:
-
“在浏览器窗口中自动执行一些点击任务”您尝试使用Selenium 吗?
-
我不认为你能做到......我的意思是听键盘寻找特定的组合键,而这对于普通的 java 是不可能的。您可以使用 JNI/JNA 并编写您的本机层来处理此组合键
-
@Nizil 浏览器只是一个例子;机器人可能正在与任何应用程序交互。我感兴趣的问题是如何打断机器人正在做的事情。
-
@augurar 好吧,如果你的机器人必须能够与任何应用程序交互,那么 Selenium 不是一个好主意 :P 祝你好运:)