2015-01-06 3 views
0

가상 머신으로 키 스트로크를 보내야합니다. 작업은 반복적인데 (하루에 3-4 번해야 함) 키 스트로크를 보내서 쉽게 시뮬레이션 할 수 있습니다. 실제로 내 VM에는 SSH 세션을 실행하는 터미널 창 (Linux 기반) 만 있습니다.Java를 사용하여 하이퍼 -V에서 키 입력을 보낼 수 없습니다.

나는 키 스트로크를 보내기위한 작은 자바 테스트 프로그램을 작성했다.

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은 오라클 버추얼 박스, 년에 시작 SSH 세션를 통해 액세스. 그러나에서 VM을 시작하면 이 실행되지 않습니다. SSH를 사용할 수는 있지만 프로그램을 실행할 수는 있습니다.

내가 실행해야하는 창을 선택해야하는데, 그 이유는 5 초 대기 시간을 포함하고 있기 때문에 올바른 창을 선택할 수 있습니다. 매우 좋지는 않지만 테스트 프로그램입니다.

+0

'keyPress() '이후에 지연 시간을 늘려 보라. – AlexR

+0

이미 시도했다. 성공 없음. 게다가 그러한 경우라면 적어도 첫 번째 키 스트로크가 등록되었을 것입니다. –

+0

원격 데스크톱 창에 초점을 맞출 때 클릭 위치는 어디에서 수행됩니까? 창 헤더 나 원격 컴퓨터에서 실행중인 메모장에 있습니까? 메모장을 클릭하고 수동으로 입력하여 실제로 초점이 맞는지 확인해보십시오. – AlexR

답변

2

hiper-v는 사용하지 않았지만 일반 원격 데스크톱으로 작업했습니다. 그러나 나는 로봇 자체를 사용하여 창에 초점을 맞추는 클릭을 수행했다. 이 기법을 사용해보십시오. https://sites.google.com/site/typetopaste/

나는이 응용 프로그램을 다운로드하고 그것을 시도하는 것이 좋습니다 : 참고로 https://github.com/alexradzin/TypeToPaste

에 대해 살펴 것은 여기 TypeToPaste 사이트입니다. 작동하는 경우 해당 코드를 검사하십시오. 그렇지 않으면 미안해 ...

어쨌든 어떻게 될지 알려 주시기 바랍니다. 나는 매우 호기심이 많다.

+0

주어진 프로그램이 작동합니다. 감사! 이제는 내 요구에 직접 사용할 수 있는지 여부를 확인해야하거나 코드를 통과해야합니까? 늦게 회신 해 드려 죄송합니다.하지만 내 사무실에서만 하이퍼 -V에 액세스 할 수 있습니다. –

+0

NP, 진도가 있다는 소식을 듣고 기쁩니다. 코드를 배우십시오. 너무 복잡하지 않고 IMHO가 잘 문서화되어 있습니다. 문제가 있으면 주저하지 말고 질문하십시오. – AlexR