我怎么能杀死一个流氓机器人?

时间:2014-06-16 09:25:09

标签: java awtrobot

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

我想做的是让我的程序听取我的某些信号,告诉它退出。例如,程序可以在" escape"键是按下的。但是,当应用程序不在焦点时,我不知道如何监听击键。

我在OSX 10.9中运行Java SE 6.

在这种情况下,我如何能够终止我的计划?

修改:发布此内容后,我找到了解决同一问题的相关问题:Listening for input without focus in Java。 (但是,这并不完全重复,因为我的问题有点广泛。)

1 个答案:

答案 0 :(得分:7)

一种选择是在每次调用Robot之前检查鼠标位置(或定期),以验证它是否仍处于上一次mouseMove'的任何位置。如果它检测到差异,则会抛出异常。这样,手动移动鼠标就可以用来终止事情了。

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