我最近需要一种方法来为 java 应用程序中的关键事件创建全局挂钩。JNativeHook 是一个非常好的解决方案,我从他们的 SVN 存储库下载的jar文件可以立即运行,而不会弄乱本机源代码。
但是我有一个很小但仍然不受欢迎的问题:添加全局挂钩后,键盘语言从我的默认匈牙利语(HU)变为英语(EN)。
我查看了他们 Wiki 上的示例,但我一无所获。我的代码非常简单,取自他们的示例:
try
{
GlobalScreen.registerNativeHook();
}
catch (NativeHookException ex)
{
System.err.println(ex.getMessage());
System.exit(1);
}
//KeyHandler class implements the NativeKeyListener interface
GlobalScreen.getInstance().addNativeKeyListener(new KeyHandler());
(我在 Windows 7 64bit 上使用它)
所以我的问题是:有没有办法在不修改和重新编译本机源代码的情况下保留默认键盘语言?