繁体   English   中英

无法使用JAVA在Hyper-V上向VM发送击键

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM