0

我最近需要一种方法来为 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 上使用它)

所以我的问题是:有没有办法在不修改和重新编译本机源代码的情况下保留默认键盘语言?

4

1 回答 1

0

向错误跟踪器报告了一个类似的问题。如果这仍然是一个问题,请重新打开错误。

当新应用程序启动时,Windows 上的语言将更改为默认语言环境。例如,在我的 Windows 7 机器上,English:US 设置为默认语言环境(快捷键 ctrl+0),德语:DE 设置为辅助语言环境(快捷键 ctrl + 1)。当一个新的应用程序启动时,它会将应用程序区域设置为 EN:US,然后可以使用 ether 快捷方式或语言栏将区域设置更改回 German:DE。JNativeHook 库似乎可以正确处理这个问题。如果您仍有问题,请重新打开此票证并提供更多信息。

于 2014-06-30T23:59:44.750 回答