我最近需要一种为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位上使用它)
所以我的问题是:有没有办法保留默认的键盘语言而无需修改和重新编译本机源?
答案 0 :(得分:0)
向bug tracker报告了类似的问题。如果这仍然是个问题,请重新打开错误。
Windows上的语言会 新应用程序启动时更改为默认语言环境。对于 在我的Windows 7机器上的示例,英语:US被设置为默认值 locale(快捷键ctrl + 0)和德语:DE设置为辅助(快捷键 ctrl + 1)。当一个新的应用程序午餐时,它会设置它 应用程序区域设置到EN:US,然后可以将区域设置更改回 德语:DE用以太快捷键或语言栏。该 JNativeHook库似乎正确处理此问题。如果你是 仍然有问题,请重新打开此票并提供 其他信息。