如何生成Java中没有密钥代码的键盘事件?

我正在使用Robot类和KeyEvent键代码生成所有其他键事件,它们工作正常,但我还需要Hangul键(切换韩语键盘)。 显然KeyEvent没有这个密钥的密钥代码,所以我卡住了:(有没有办法生成这个Hangul密钥事件?有没有办法使用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是我正在寻找的Hangul /英语切换键的虚拟键码和键盘扫描码,但是查找代码以获取您需要的任何键然后替换它们,您几乎可以生成任何键事件。

你需要jna.jar和platform.jar才能工作。