2013-06-29 137 views
0

我最近需要一種方法來爲Java應用程序中的關鍵事件創建全局鉤子。 JNativeHook是一個非常好的解決方案,我從他們的SVN倉庫下載的jar文件立即工作,而不會干擾本地源代碼。JNativeHook更改鍵盤語言

但是我有一個非常小但仍然不受歡迎的問題:當添加全局掛鉤時,鍵盤語言從我的默認匈牙利語(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

有一個類似的問題報告給bug tracker。如果這仍然是問題,請重新打開該錯誤。

當新應用程序啓動時,Windows上的語言將 更改爲默認語言環境。對於我的Windows 7機器上的 示例,英語:US設置爲默認的 語言環境(快捷鍵ctrl + 0),德語:DE設置爲輔助(快捷鍵 ctrl + 1)。當新應用程序午餐時,它會將 應用程序語言環境設置爲EN:US,然後可將區域設置更改回 德語:DE,其中帶有以下快捷方式或語言欄。 JNativeHook庫似乎可以正確處理這個問題。如果您是 仍然存在問題,請重新打開此故障單並提供 附加信息。