你如何从一个字母的字母中获取VK代码?看起来你应该能够做类似的事情javax.swing.KeyStroke.getKeyStroke('c').getKeyCode()
,但这不起作用(结果为零).如果您已经拥有KeyEvent,每个人都知道如何获取密钥代码,但如果您只想将字符转换为VK整数,该怎么办?我对获取奇怪字符的FK代码不感兴趣,只有[AZ],[az],[0-9].
这个问题的背景--------我见过的所有机器人教程都假设程序员喜欢通过发送带有VK代码的按键来拼出单词:
int keyInput[] = { KeyEvent.VK_D, KeyEvent.VK_O, KeyEvent.VK_N, KeyEvent.VK_E };//end keyInput array
叫我懒惰,但即使使用Eclipse,也无法在GUI上使用TDD.如果有人碰巧知道一个类似于机器人的类,它接受字符串,然后模拟这些字符串的用户输入(我正在使用FEST),我很想知道.
AWTKeyStroke.getAWTKeyStroke('c').getKeyCode();
稍微澄清了佩斯的回答.它应该是单引号(表示字符),而不是双引号(表示字符串).
使用双引号将抛出java.lang.IllegalArgumentException(String格式不正确).
也许这个丑陋的黑客:
MapkeyTextToCode = new HashMap (256); Field[] fields = KeyEvent.class.getDeclaredFields(); for (Field field : fields) { String name = field.getName(); if (name.startsWith("VK_")) { keyTextToCode.put(name.substring("VK_".length()).toUpperCase(), field.getInt(null)); } }
然后,keyTextToCode将包含从字符串(例如"A"或"PAGE_UP")到vk代码的映射.