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

aug*_*rar 5 java awtrobot

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

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

我在OSX 10.9中运行Java SE 6.

在这种情况下,我怎么能终止我的程序?

编辑:发布此内容后,我发现了一个解决同一问题的相关问题:在Java中收听没有焦点的输入.(但是,这并不完全重复,因为我的问题有点广泛.)

Sne*_*tel 7

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

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