我想獲得鍵盤佈局名稱,例如US-English鍵盤的「kbdus」或US-International的「kbdusx」。我已經嘗試從Win32API獲得「GetKeyboardLayoutName」,但我只是得到一個數字(0x20409)。我知道0x0409意味着「英文」和「0x2」可能意味着英文鍵盤變化之一。如何獲得用戶的鍵盤佈局的確切名稱?我在Windows上使用Ruby 1.8.7。如何使用紅寶石獲取windows上的鍵盤佈局?
0
A
回答
1
我發現了一個回答我的問題:
require 'win32/registry'
require 'win32API'
Win32API.new('user32', 'GetKeyboardLayoutName', 'p', '').call(layoutid = "\0"*8)
reg_path = 'SYSTEM\CurrentControlSet\Control\Keyboard Layouts\\' << layoutid
reg = Win32::Registry::HKEY_LOCAL_MACHINE.open(reg_path)
layoutcode = reg.read('Layout File')[1].split('.', 2)[0]
layoutname = reg.read('Layout Text')[1]
layoutcode # => "KDBUSX"
layoutname # => "United States-International"
0
這個關於Language Identifiers的討論可能會讓你朝着正確的方向前進。 This listing of constants可能會更好。
相關問題
- 1. 如何從鍵盤輸入紅寶石?
- 2. 獲取紅寶石
- 3. Windows上的紅寶石IO.read
- 4. 在軌道上的紅寶石屈服於新的紅寶石佈局
- 5. 紅寶石鍵盤事件處理
- 6. 紅寶石erb模板 - 嘗試更改佈局 - 獲取錯誤
- 7. 最近版本的紅寶石鍵盤的等效鍵盤
- 8. 如何在紅寶石上的不同頁面使用不同的佈局?
- 9. 如何使用紅寶石
- 10. 更改Windows Mobile上的鍵盤佈局
- 11. 在紅寶石在Windows上安裝紅寶石調試base19 1.9.3
- 12. 紅寶石獲取價值
- 13. 如何在OS X上安裝寶石後使用紅寶石
- 14. 如何獲得紅寶石2.0模塊#prepend在紅寶石1.8?
- 15. 安裝紅寶石寶石在Windows
- 16. 我如何設置我的Windows 7使用鍵盤佈局#jcuken鍵盤(拉丁)
- 17. 在Windows上的紅寶石osascript?
- 18. vim在windows上的支持紅寶石
- 19. 如何在Windows 7上安裝諸如Sass之類的紅寶石寶石
- 20. 使用紅寶石
- 21. 紅寶石在軌道上的嵌套佈局
- 22. 使用鍵創建紅寶石數組
- 23. 紅寶石:獲取值,如果真或
- 24. 紅寶石:發佈使用RESTClient實現
- 25. 僵局queue.pop - 紅寶石
- 26. 如何獲得數字鍵盤佈局
- 27. 紅寶石在軌道上的寶石
- 28. 如何紅寶石
- 29. 如何紅寶石
- 30. 如何紅寶石