2017-11-03 2 views
0

Ich versuche, mein root-Passwort wiederherzustellen, indem ich automatisch eine laufende Oracle VM VirtualBox eintippe. Ich habe versucht, Java.awt.robot und pyautogui zu verwenden, um die Aufgabe abzuschließen.Autotyper (pyautogui, java.awt.robot) funktioniert nicht auf einer Oracle VM VirtualBox

Beide sind erfolgreich in der Lage, auf die VM zu klicken, und beide können in ein Word-Dokument auf meinem tatsächlichen Computer eingeben, aber keine Tastenanschläge werden von der VM interpretiert (wo mein Problem auftritt).

Ich habe Auto Capture Keyboard jetzt ausgeschaltet, funktioniert aber immer noch nicht.

Python-Version:

import pyautogui 

# location of where I am putting the console 
pyautogui.moveTo(589, 973) 
pyautogui.click() 
pyautogui.typewrite('Hello, world') 
pyautogui.press('enter') 

Java-Version:

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); 
    } 
} 

Beide Versionen werden die VM klicken, aber noch wird darin etwas geben noch drücken Enter-Taste Oracle VM Ubuntu recovery mode

Ist das eine alberne Art zu versuchen, in die VM einzutippen? Gibt es eine einfachere Methode zum Senden von Eingaben und Tastenanschlägen an eine VM? Was mache ich falsch, damit die Eingabe nicht in die VM eintippt?

(Suche nicht einfach Strg-D drücken, um das Passwort zu umgehen.)

Kurz Video davon auf einem lokalen Dokument arbeiten, aber nicht auf VM: https://www.youtube.com/watch?v=sM9dVjzzEbI&feature=youtu.be

Antwort

0

ich Ubuntu verwende als Host, die Java-Version funktioniert gut. Es ist in der Lage, den Fokus zu übertragen und etwas in LibreOffice einzugeben. Ich habe auch Thread.sleep(100); vor keyPress Methode hinzugefügt.

Ich benutze VirtualBox Version 5.2 mit Erweiterungspack installiert. Beide Maschinen laufen Ubuntu 16.04. Das Problem könnte mit dem Windows-Host zusammenhängen.

+0

Herzlichen Glückwunsch, niemand anderes beantwortete die Frage. Also bekommst du die Punkte standardmäßig. – Brandon

Verwandte Themen