Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 键盘/鼠标机器人在专注于某个应用程序时不工作_Java_Security_Awtrobot - Fatal编程技术网

Java 键盘/鼠标机器人在专注于某个应用程序时不工作

Java 键盘/鼠标机器人在专注于某个应用程序时不工作,java,security,awtrobot,Java,Security,Awtrobot,所以我尝试使用机器人(按键或鼠标)来模拟应用程序上的一些测试。然而,这个程序不允许我这么做,我很确定这是一个安全功能。我正在使用的应用程序是,我正在尝试模拟一个记录,并停止记录一些自动测试。我用来自动化这些测试的程序无法访问TEMS,因此如果没有机器人,我无法实现这一点。因此,我的问题是: 1) 我怎样才能覆盖阻止我使用机器人的任何东西。 2) 如果我这样做,这会被视为非法吗?我不需要违反任何法律…我只想完成我的测试!哈哈 我甚至不能运行像以下这样简单的操作: Robot r = new Rob

所以我尝试使用机器人(按键或鼠标)来模拟应用程序上的一些测试。然而,这个程序不允许我这么做,我很确定这是一个安全功能。我正在使用的应用程序是,我正在尝试模拟一个记录,并停止记录一些自动测试。我用来自动化这些测试的程序无法访问TEMS,因此如果没有机器人,我无法实现这一点。因此,我的问题是:

1) 我怎样才能覆盖阻止我使用机器人的任何东西。
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),但我无法访问任何菜单项…即使是在记事本中。所以这似乎是我现在的问题…我无法打开菜单项,例如“文件”。我使用了一个应用程序来确认发送了正确的密钥,并且它们是正确的。