2009-09-25 58 views
1

要確定活動鍵盤佈局的名稱,可以通過調用GetKeyboardLayoutName然後在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\{0}\Layout Text下查找它來獲取其「數字名稱」。如何確定所有安裝的鍵盤佈局的名稱?

但是,無法解釋的是,似乎沒有辦法將由GetKeyboardLayoutList返回的區域設置標識符轉換爲適合在註冊表中查找的「數字名稱」。

有沒有辦法檢索所有安裝的鍵盤佈局的佈局文本而不激活每一個這樣做?

例如,對於美國,國際,GetKeyboardLayoutList回報f0010809我的系統上,但該名00020409下保存(可通過激活f0010809並調用GetKeyboardLayoutName進行驗證 - 這將返回00020409)。

回答

0

這似乎沒有API。但是,爲了確定其「數字名稱」而簡單切換到佈局的解決方法完美地工作,沒有明顯的副作用。

在多線程應用程序中可能不太好,用戶可能在這種情況發生的同時打字!