我使用 Robot 类和 KeyEvent 按键代码来生成所有其他按键事件,它们工作正常,但我还需要 Hangul 键(切换韩语键盘)。显然 KeyEvent 没有这个键的键码,所以我被卡住了:( 有没有办法生成这个韩文键事件?
有没有办法使用 Windows 的按键代码(如 VK_HANGUL (0x15))而不是 KeyEvent 按键代码?如果可以的话,更改所有键代码就不成问题了...或者以某种方式获取一次键事件并将其永久存储在某处并永远使用...???
我想做的是创建一个包含数字、字母和韩语的屏幕键盘。点击某个图标,就会生成对应字母的按键事件,从而输入该字母。 (除了切换到韩语之外,一切都正常。)
能够生成朝鲜文按键事件会很好,但如果不可能,是否有关于如何实现此目标的任何建议?
也许我可以将每个韩语字母与键盘上相应的字母表绑定(例如,在同时具有英语和韩语的传统键盘上,g 是ㅎ)或其他东西,但是如何将其发送到其他应用程序?
抱歉,如果这个问题如此普遍。我真的迷路了。
我找到了解决该问题的方法。我使用 JNA 生成键盘事件。
这里有一些代码,以防有人需要。
使用 User32.dll 中的 JNA 和 keybd_event 方法的基本内容:
import com.sun.jna.*;
import com.sun.jna.Native;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.win32.StdCallLibrary;
public interface User32jna extends User32 {
User32jna INSTANCE = (User32jna) Native.loadLibrary("user32.dll",User32jna.class);
public void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
}
User32jna u32 = User32jna.INSTANCE;
然后将其插入到需要生成关键事件的位置:
u32.keybd_event((byte) 0x15,(byte)0xF2,0,0);
0x15 和 0xF2 是我正在寻找的韩文/英语切换键的虚拟键代码和键盘扫描代码,但是查找您需要的任何键的代码,然后替换它们,您几乎可以生成任何键事件。
您将需要 jna.jar 和 platform.jar 才能正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)