그래서 나는 다음과 같은 코드가 있습니다자바 로봇 - 이슈 입력 'A'맥
이public static void main(String[] args) throws AWTException, InterruptedException {
Robot robot = new Robot();
robot.setAutoWaitForIdle(true);
robot.setAutoDelay(40);
// This works fine
robot.mouseMove(40, 130);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(200);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(200);
// The 'a' is never inputted
robot.keyPress(KeyEvent.VK_A);
robot.delay(200);
robot.keyRelease(KeyEvent.VK_A);
}
이 코드는 성공적으로 위치 (40), (130) 및 클릭에 마우스를 이동합니다. 필자는 텍스트 편집기를이 위치에서 열어 초점을 맞 춥니 다.
다음 코드 비트가 문제입니다. keyPress/Release 스 니펫은 다른 코드에서 완벽하게 작동합니다. (100과 마찬가지로 숫자 4에 해당합니다.)하지만 어떤 이유로 문자 'a'는 텍스트 편집기에 인쇄되지 않습니다.
나는 프로그램을 계속 반복하고 ~ 5 초 동안 인쇄 해 보았습니다. 프로그래밍 방식 클릭 후 텍스트 편집기에서 'a'가 인쇄되지 않습니다. 이 시간 동안 직접 편집 프로그램을 클릭하면 'a'의 문자열이 나타납니다.
이 문제의 원인은 무엇이며 어떻게 해결할 수 있습니까?
다른 'VK_?'키 이벤트 (예 :'VK_B')로 정확히 동일한 코드를 실행하면 작동합니까? 또한 ASCII 코드 '100'은 숫자 '4'가 아닌 소문자 'd'이므로 혼란이있는 것으로 보입니다. –
예, VK_4와 정확히 동일한 코드가 올바르게 작동합니다. VK_B가 작동하지 않는 것처럼 보입니다. – dszopa
'VK_4'로 시작하는'VK_A'로'VK_4'를 번갈아 보내면 어떨까요? 'A'가 없으면'4'가 나옵니까? 'VK_A'로 시작한다면 어떨까요? 이것을 실험 해보기 위해 약간의 노력을 기울이십시오. –