0
이 문제에 관해 비슷한 질문을 보았습니다. 그러나 나에게 일어난 일은 조금 다릅니다. 원격 제어 응용 프로그램을 개발 중이며 컴퓨터에 키 입력을 보내고 있습니다. 자바 로봇 클래스는 키 입력에 대한 VK_CODES을 받아, 그래서 나는이 같은 키 조합에 비 ASCII 문자를 번역 할 수 있습니다자바에서 문자를 키 입력으로 변환
public void type(char character) {
switch (character) {
case 'a': doType(KeyEvent.VK_A); break;
case 'á': doType(KeyEvent.VK_A); break;
case 'à': doType(KeyEvent.VK_A); break;
case 'ä': doType(KeyEvent.VK_A); break;
case 'â': doType(KeyEvent.VK_A); break;
case 'b': doType(KeyEvent.VK_B); break;
case 'c': doType(KeyEvent.VK_C); break;
case 'd': doType(KeyEvent.VK_D); break;
case '{': doType(KeyEvent.VK_SHIFT, KeyEvent.VK_OPEN_BRACKET); break;
case '}': doType(KeyEvent.VK_SHIFT, KeyEvent.VK_CLOSE_BRACKET); break;
case '|': doType(KeyEvent.VK_SHIFT, KeyEvent.VK_BACK_SLASH); break;
etc...
}
private void doType(int... keyCodes) {
doType(keyCodes, 0, keyCodes.length);
}
private void doType(int[] keyCodes, int offset, int length) {
if (length == 0) {
return;
}
robot.keyPress(keyCodes[offset]);
doType(keyCodes, offset + 1, length - 1);
robot.keyRelease(keyCodes[offset]);
}
이 잘 작동,하지만 난에 대한 (Alt + 숫자 문자를 결합하려고 할 때 예를 들어 내가 할)에 '@'문자를 입력합니다 :
case '@': doType(KeyEvent.VK_ALT,KeyEvent.VK_6,KeyEvent.VK_4); break;
그것을 입력하지 않습니다. 키보드로 직접 입력하면 작동합니다. 이유가 있을까요? ASCII 인스턴스뿐만 아니라 모든 유니 코드 문자를 받아들이도록 Robot 인스턴스를 만들려면 어떻게해야합니까? 내가하고있는 일을하는 더 좋은 방법이 있습니까?
영어를 읽어 주셔서 감사합니다.