JNativeHook更改了键盘语言

时间:2013-06-29 12:06:45

标签: java keyboard hook native

我最近需要一种为java应用程序中的关键事件创建全局钩子的方法。 JNativeHook是一个非常好的解决方案,我从他们的SVN repo下载的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 64位上使用它)

所以我的问题是:有没有办法保留默认的键盘语言而无需修改和重新编译本机源?

1 个答案:

答案 0 :(得分:0)

bug tracker报告了类似的问题。如果这仍然是个问题,请重新打开错误。

  

Windows上的语言会   新应用程序启动时更改为默认语言环境。对于   在我的Windows 7机器上的示例,英语:US被设置为默认值   locale(快捷键ctrl + 0)和德语:DE设置为辅助(快捷键   ctrl + 1)。当一个新的应用程序午餐时,它会设置它   应用程序区域设置到EN:US,然后可以将区域设置更改回   德语:DE用以太快捷键或语言栏。该   JNativeHook库似乎正确处理此问题。如果你是   仍然有问题,请重新打开此票并提供   其他信息。