Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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将击键发送到hyper-V上的VM_Java_Ssh_Virtual Machine_Hyper V - Fatal编程技术网

无法使用JAVA将击键发送到hyper-V上的VM

无法使用JAVA将击键发送到hyper-V上的VM,java,ssh,virtual-machine,hyper-v,Java,Ssh,Virtual Machine,Hyper V,我必须向虚拟机发送击键。这个任务是重复的(我一天要做3-4次),但可以通过发送击键来轻松模拟。实际上,我的虚拟机只有运行SSH会话的终端窗口(基于linux) 我编写了一个小型java测试程序来发送击键 public class TestRobot1 { static int keyInput[] = { KeyEvent.VK_H, KeyEvent.VK_E, KeyEvent.VK_L, KeyEvent.VK_L, KeyEven

我必须向虚拟机发送击键。这个任务是重复的(我一天要做3-4次),但可以通过发送击键来轻松模拟。实际上,我的虚拟机只有运行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);
        }
    }
}
公共类TestRobot1{
静态int keyInput[]={
KeyEvent.VK_H,KeyEvent.VK_E,
KeyEvent.VK_L,KeyEvent.VK_L,
KeyEvent.VK_O,KeyEvent.VK_ENTER,
};
公共静态void main(字符串[]args)抛出InterruptedException、AWTException{
睡眠(5000);
机器人=新机器人();
for(int i=0;i
此程序在记事本上成功运行,虚拟机在Oracle Virtual Box中启动,,并通过SSH会话访问。但是当VM从hyper-V启动时,它不会运行,尽管我可以通过SSH连接到它,然后我可以运行程序


我必须选择这个窗口,它应该运行,这就是为什么我包含了5秒等待,这样我就可以选择正确的时间窗口。我知道这不是很好,但这是一个测试程序。

我没有使用hiper-v,但我使用常规远程桌面。然而,我使用机器人本身执行了使焦点集中在窗口上的点击。试试这个技巧。参考一下

以下是TypeToPaste网站:

我建议下载此应用程序并试用。如果有效,请检查其代码。否则我很抱歉


不管怎样,请告诉我进展如何。我很好奇……

keyPress()
已经尝试过之后,尝试增加延迟。没有成功。此外,如果是这样的话,至少会注册第一次击键。当您聚焦远程桌面窗口时,您在哪里执行单击:在窗口标题上还是在远程计算机上运行的记事本上?试着点击记事本,甚至试着手动输入,以确保它确实在焦点上。刚才试过了。还是一样,你的程序是有效的。谢谢现在我必须看看我是否可以直接使用它来满足我的需求,或者我应该检查一下你的代码。很抱歉回复晚了,但我只能在我的办公室访问hyper-v.NP,很高兴听到您取得了进展。学习代码。它不太复杂,而且有很好的文档记录。如果你有问题,不要犹豫问问题。