我正在尝试通过自动键入正在运行的Oracle VM VirtualBox来恢复root密码。我已经尝试使用Java.awt.robot和pyautogui来完成任务。
他们都能成功点击VM,他们都可以在我的实际计算机上输入word文档,但VM没有解释任何键击(这是我的问题发生的地方)。 p>
我现在关闭了自动捕获键盘,但仍无效。
Python版本:
import pyautogui
# location of where I am putting the console
pyautogui.moveTo(589, 973)
pyautogui.click()
pyautogui.typewrite('Hello, world')
pyautogui.press('enter')
Java版:
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class Main {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
// location of where I am putting the console
robot.mouseMove(589, 973);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
// testing to see if the enter key will work
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
}
两个版本都会单击VM,但不会在其中键入任何内容,也不会按Enter键
这是尝试输入虚拟机的愚蠢方式吗?是否有更简单的方法向VM发送输入和击键?如果输入不能输入VM,我做错了什么?
(我不打算只按Control-D来绕过密码。)
在本地文档上处理的简短视频,但不在VM上:https://www.youtube.com/watch?v=sM9dVjzzEbI&feature=youtu.be
答案 0 :(得分:0)
我使用Ubuntu作为主机,Java版本运行正常。它可以在LibreOffice中传输焦点并输入内容。我还在Thread.sleep(100);
方法之前添加了keyPress
。
我正在使用安装了扩展包的VirtualBox 5.2版。两台机器都运行Ubuntu 16.04。该问题可能与Windows主机有关。