[英]Cannot send keystrokes to VM on hyper-V using JAVA
我必须将击键发送到虚拟机。 任务是重复性的(我每天必须做3-4次),但是可以通过发送击键轻松地进行模拟。 实际上,我的VM仅具有运行SSH会话的终端窗口(基于Linux)。
我编写了一个小的Java测试程序来发送击键。
public class TestRobot1 {
static int keyInput[] = {
KeyEvent.VK_H, KeyEvent.VK_E,
KeyEvent.VK_L, KeyEvent.VK_L,
KeyEvent.VK_O, KeyEvent.VK_ENTER,
};
public static void main(String[] args) throws InterruptedException, AWTException {
Thread.sleep(5000);
Robot robot = new Robot();
for(int i = 0; i < keyInput.length; i++){
robot.keyPress(keyInput[i]);
robot.delay(10);
robot.keyRelease(keyInput[i]);
robot.delay(10);
}
}
}
该程序可在记事本上成功运行, VM在Oracle Virtual Box中启动 , 并可通过SSH会话进行访问 。 但是, 当从hyper-V启动VM时,它无法运行 ,尽管我可以SSH到该端口,然后可以运行该程序。
我必须选择要在其上运行的窗口,这就是为什么我要等待5秒钟,以便我可以及时选择正确的窗口的原因。 我知道这不是很好,但这是一个测试程序。
我没有使用hiper-v,但是我使用的是常规远程桌面。 但是,我执行了单击操作,使用机器人本身将焦点放在窗口上。 试试这种技术。 作为参考,请查看https://github.com/alexradzin/TypeToPaste
这是TypeToPaste网站: https : //sites.google.com/site/typetopaste/
我建议下载此应用程序并尝试。 如果可行,请检查其代码。 不然对不起...
请让我知道它进展如何。 我很好奇...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.