Java 我怎样才能杀死一个无赖机器人?

Java 我怎样才能杀死一个无赖机器人?,java,awtrobot,Java,Awtrobot,我(ab)使用Java的Robot类在浏览器窗口中自动执行一些单击任务。在第一次单击时,Java应用程序将失去焦点。如果机器人开始行为不端,我想终止程序。然而,我不能轻易做到这一点,因为机器人可以控制我的鼠标 我想做的是让我的程序监听来自我的某种信号,告诉它退出。例如,当按下“退出”键时,程序可能退出。然而,我不知道当应用程序不在焦点时如何监听击键 我正在OSX10.9中运行JavaSE6 在这种情况下,我怎样才能终止我的计划 编辑:发布此消息后,我发现一个相关问题解决了相同的问题:。(但是,这

我(ab)使用Java的
Robot
类在浏览器窗口中自动执行一些单击任务。在第一次单击时,Java应用程序将失去焦点。如果机器人开始行为不端,我想终止程序。然而,我不能轻易做到这一点,因为机器人可以控制我的鼠标

我想做的是让我的程序监听来自我的某种信号,告诉它退出。例如,当按下“退出”键时,程序可能退出。然而,我不知道当应用程序不在焦点时如何监听击键

我正在OSX10.9中运行JavaSE6

在这种情况下,我怎样才能终止我的计划


编辑:发布此消息后,我发现一个相关问题解决了相同的问题:。(但是,这不是一个完全相同的选项,因为我的问题更广泛一些。)

一个选项是在每次调用之前(或定期)检查鼠标位置,以验证它是否仍然位于上次移动鼠标的位置。如果它检测到差异,就会抛出异常。这样,可以使用手动移动鼠标来终止操作


可能最好包装
Robot
,以确保它始终检查。我建议
secondlawsemplyingrobot

“在浏览器窗口中自动执行一些单击任务”您尝试过使用吗?我认为您做不到。。。我的意思是听键盘输入特定的组合键,而这在普通java中是不可能的。您可以使用JNI/JNA并编写本机层代码来处理此密钥combination@Nizil浏览器只是一个例子;机器人可能与任何应用程序进行交互。我感兴趣的问题是如何中断机器人正在做的任何事情。@augurar好吧,如果你的机器人必须能够与任何应用程序交互,Selenium不是一个好主意:P祝你好运:)非常聪明!在关键时刻(例如,当机器人按下鼠标按钮时)移动鼠标可能会导致一些问题,但我认为这对我来说是可行的。如果在
mousererelease
之前注意到差异,则插入
escape
按键可以避免大多数此类问题。至少在Windows上(不确定OSX),
escape
取消拖动。