Java 键盘/鼠标机器人在专注于某个应用程序时不工作
所以我尝试使用机器人(按键或鼠标)来模拟应用程序上的一些测试。然而,这个程序不允许我这么做,我很确定这是一个安全功能。我正在使用的应用程序是,我正在尝试模拟一个记录,并停止记录一些自动测试。我用来自动化这些测试的程序无法访问TEMS,因此如果没有机器人,我无法实现这一点。因此,我的问题是: 1) 我怎样才能覆盖阻止我使用机器人的任何东西。Java 键盘/鼠标机器人在专注于某个应用程序时不工作,java,security,awtrobot,Java,Security,Awtrobot,所以我尝试使用机器人(按键或鼠标)来模拟应用程序上的一些测试。然而,这个程序不允许我这么做,我很确定这是一个安全功能。我正在使用的应用程序是,我正在尝试模拟一个记录,并停止记录一些自动测试。我用来自动化这些测试的程序无法访问TEMS,因此如果没有机器人,我无法实现这一点。因此,我的问题是: 1) 我怎样才能覆盖阻止我使用机器人的任何东西。 2) 如果我这样做,这会被视为非法吗?我不需要违反任何法律…我只想完成我的测试!哈哈 我甚至不能运行像以下这样简单的操作: Robot r = new Rob
2) 如果我这样做,这会被视为非法吗?我不需要违反任何法律…我只想完成我的测试!哈哈 我甚至不能运行像以下这样简单的操作:
Robot r = new Robot();
r.keyPress(KeyEvent.VK_F2);
r.keyRelease(KeyEvent.VK_F2);
它将运行,因为我已经下载了一些软件来告诉我我按下了什么键……只是在TEMS应用程序有焦点时无法识别
更新:我发现在使用记事本时,我不能使用任何键(如“ALT”)+ F”)以执行任何菜单选项。它甚至连“文件”都没有拉出来 菜单。我能够模拟在文本中键入,而不是上下文菜单。 真正奇怪的是,我甚至不能在TEMS时使用mouseMove() 有焦点吗
听起来您的运行时不了解TEMS应用程序。如果您在java代码中启动它,它应该可以工作。例如:
Runtime.getRuntime().exec("notepad");
robot.keyPress(KeyEvent.VK_J);
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_F);
将打开记事本,输入字母J。尝试执行TEMS,然后发送按键
不,这并不违法
更新:
要在记事本中打开文件菜单,请执行以下操作:
Runtime.getRuntime().exec("notepad");
robot.keyPress(KeyEvent.VK_J);
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_F);
在
机器人之前,必须将这两个键一起按下。如何释放?我的印象是,机器人是用来做这类事情的,你们不需要做任何事情来做一些简单的事情,比如把按键发送给本机。可能是TEMS应用程序忽略了输入,除非它来自设备。那边的一些相关SO问题->
可能有一些答案。也许有使用机器人经验的人(我不知道)能告诉你更好的答案。TEMS应用程序能全屏运行吗?很难猜出是什么错了,或者他们写了什么东西来阻止itUpdate:我发现使用记事本时,我不能使用任何键(如“ALT+F”)来执行任何菜单选项。它甚至没有打开“文件”菜单。我能够模拟在文本中键入,而不是上下文菜单。真正奇怪的是,我甚至不能使用mouseMove()
,而TEMS有焦点。更新了答案,以打开文件菜单为例。是的,这正是我试图做的….robot.keyPress(KeyEvent.VK_ALT);robot.keyPress(KeyEvent.VK_F);robot.keyrease(KeyEvent.VK_F);robot.keyrease(KeyEvent.VK_ALT)代码>,但我无法访问任何菜单项…即使是在记事本中。所以这似乎是我现在的问题…我无法打开菜单项,例如“文件”。我使用了一个应用程序来确认发送了正确的密钥,并且它们是正确的。