Java JNativeHook更改键盘语言

Java JNativeHook更改键盘语言,java,keyboard,hook,native,Java,Keyboard,Hook,Native,我最近需要一种为java应用程序中的关键事件创建全局钩子的方法。JNativeHook是一个非常好的解决方案,我从他们的SVN repo下载的文件可以立即工作,而不会与本机源代码混淆 但我有一个非常小但仍然不受欢迎的问题:当添加全局钩子时,键盘语言将从默认的匈牙利语(HU)更改为英语(EN) 我看了他们维基上的例子,但什么也没找到。从他们的示例中可以看出,我的代码非常简单: try { GlobalScreen.registerNativeHook(); } catch (Nativ

我最近需要一种为java应用程序中的关键事件创建全局钩子的方法。JNativeHook是一个非常好的解决方案,我从他们的SVN repo下载的文件可以立即工作,而不会与本机源代码混淆

但我有一个非常小但仍然不受欢迎的问题:当添加全局钩子时,键盘语言将从默认的匈牙利语(HU)更改为英语(EN)

我看了他们维基上的例子,但什么也没找到。从他们的示例中可以看出,我的代码非常简单:

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 64位上使用它)


因此,我的问题是:有没有一种方法可以在不修改和重新编译本机源代码的情况下保留默认键盘语言?有一个类似的问题报告给了。如果这仍然是一个问题,请重新打开该错误

Windows上的语言将 在新应用程序启动时更改为默认区域设置。对于 例如,在我的Windows 7计算机上,英语:US设置为默认值 区域设置(快捷键ctrl+0)和德语:取消设置为辅助(快捷键 ctrl+1)。当一个新的应用程序出现时,它将设置 应用程序区域设置为EN:US,然后可以将区域设置更改回 德语:使用快捷方式或语言栏进行DE。这个 JNativeHook库似乎可以正确处理此问题。如果你是 仍有问题,请重新打开此票证并提供 补充资料