JAVA 用于输入挪威语字符的机器人
JAVA Robot to type Norwegian characters
我想使用 java awt 机器人输入 å、ø、æ 等字母。但无法找到这些字母的任何关键事件。我正在使用 ubuntu 并且选择了挪威语作为语言。所以我可以从键盘输入这些字母,但是当我尝试获取键码时,这些字母总是给出 0。
有人可以建议我如何使用 java 机器人写作。
基于 Wolfgang Steiner 的解决方案:
public static void pressUnicode(Robot r, int key_code)
{
r.keyPress(KeyEvent.VK_ALT);
for(int i = 3; i >= 0; --i)
{
// extracts a single decade of the key-code and adds
// an offset to get the required VK_NUMPAD key-code
int numpad_kc = key_code / (int) (Math.pow(10, i)) % 10 + KeyEvent.VK_NUMPAD0;
r.keyPress(numpad_kc);
r.keyRelease(numpad_kc);
}
r.keyRelease(KeyEvent.VK_ALT);
}
这会自动遍历 unicode 键码的每个十年,将其映射到相应的 VK_NUMPAD 等价物和相应的 presses/releases 键。它适用于每个 unicode 字符。
要获取 Symbol 的代码,请执行以下操作:
char ch='ä';
int key_code = ch;
System.out.println(key_code);
编辑:此解决方案基于windows。要使其适用于 Linux,请尝试以下操作:
"For linux - Hold down 'ctrl' & 'shift' the entire time while entering the character. While holding them down, press 'U' then the 4 digit octal code for the character. "
我想使用 java awt 机器人输入 å、ø、æ 等字母。但无法找到这些字母的任何关键事件。我正在使用 ubuntu 并且选择了挪威语作为语言。所以我可以从键盘输入这些字母,但是当我尝试获取键码时,这些字母总是给出 0。
有人可以建议我如何使用 java 机器人写作。
基于 Wolfgang Steiner 的解决方案:
public static void pressUnicode(Robot r, int key_code)
{
r.keyPress(KeyEvent.VK_ALT);
for(int i = 3; i >= 0; --i)
{
// extracts a single decade of the key-code and adds
// an offset to get the required VK_NUMPAD key-code
int numpad_kc = key_code / (int) (Math.pow(10, i)) % 10 + KeyEvent.VK_NUMPAD0;
r.keyPress(numpad_kc);
r.keyRelease(numpad_kc);
}
r.keyRelease(KeyEvent.VK_ALT);
}
这会自动遍历 unicode 键码的每个十年,将其映射到相应的 VK_NUMPAD 等价物和相应的 presses/releases 键。它适用于每个 unicode 字符。
要获取 Symbol 的代码,请执行以下操作:
char ch='ä';
int key_code = ch;
System.out.println(key_code);
编辑:此解决方案基于windows。要使其适用于 Linux,请尝试以下操作:
"For linux - Hold down 'ctrl' & 'shift' the entire time while entering the character. While holding them down, press 'U' then the 4 digit octal code for the character. "