2012-03-19 64 views
1

我目前正在開發一款非常小巧且具有atmega微控制器的HID鍵盤。我遇到的最大問題是鍵碼對於當前在主機上設置的語言環境非常具體。發送正確的HID密鑰碼?

像a-z一樣的所有普通字符都運行得很好,但是當按下按鍵時,某些特殊字符會產生不好的結果。

例如,+關鍵,這是0xE1 & 0x2E(LeftShift & KeyboardEqualSign)不只是在美國鍵盤工作。但我使用德國佈局,所以我得到了ß

我怎樣才能得到正確的德國佈局的鍵碼?我無法找到任何描述此類按鍵的文檔...我認爲HID鍵碼非常糟糕,旨在支持多種鍵盤佈局:(

我是否需要在德語版面上查找我的密鑰?所以對於+登錄其可能是]關鍵?但爲什麼到底它是一個如此愚蠢的設計?是否有任何包裝?

回答

0

有同樣的問題。我花了一個EN_US鍵盤的圖片,比起來我德語鍵盤,然後我把它轉移到鍵盤上......它還沒有完成,因爲它的工作非常驚人,我現在不需要其他的字符,最重要的字符應該在那裏,它在Iso8859之後排序,我讓iso代碼可能會幫助別人。

在這裏你去:

ISO8859的十六進制代碼,修改,USB HID鍵碼,字符

  • 爲0x22,移位,爲0x1F,「
  • 0×23,0,0x31,#
  • 0X24 ,移位,爲0x21,$
  • 0x25,移位,爲0x22,%
  • 0×26,移位,0×23,&
  • 0×27,移位,0X31,「
  • 0×28,移位,0x25,(
  • 0x29,移位,0×26,
  • 0x2A,移位,的0x30,*
  • 0x2B訪問,0,0x30,+
  • 0x2C,0,0x36,,
  • 0x2D,0,0x38, -
  • 0x2E,0,0x37,。
  • 值爲0x2F,移位,0X24,/
  • 的0x30到0x39是數字,此處無需改變EN_US
  • 0x3A,移位,0×37,:
  • 0x3B,移位,0x36;
  • 爲0x3C,0,0x64,<
  • 的0x3D,移位,0×27,=
  • 0x3E的,移位,0x64,>
  • 0x3F的,移位,0x2D,?
  • 0x40的,鍵AltGr,0×14,@ *大寫字母,這裏不改變EN_US
  • 0×59,移位,0x1D,開關Z,Y
  • 0x5A,移位,爲0x1C;
  • 0x5B,鍵AltGr,0x25,[
  • 0x5C,鍵AltGr,0x2D, 「\」
  • 0x5D,鍵AltGr,0×26,]
  • 0x5E,0,0x35,^
  • 0x5F的,移位,0x38 ,_
  • 0x60的,移位,0x2E之間,` *小寫字母,這裏不改變EN_US
  • 0x79的,0,0x1D,開關Z,Y
  • 0x7A,0,0x1C
  • 0 x7B,altgr,0x24,{
  • 0x7C,altgr,0x64,|
  • 0x7D,AltGr鍵,×27,}
  • 的0x7E,鍵AltGr,爲0x30,〜 * 0x80到0x9F不使用 0XA0不存在 「非打破空間」
  • 還沒有沒有完成
  • 0xC4,移,0x34,Ä
  • 還沒有沒有完成
  • 0xD6,移位,0x33,Ö
  • 還沒有沒有完成
  • 的0xDC,市英尺,值爲0x2F,U
  • 還沒有完成尚未
  • 0xE4,0,0x34,ä
  • 還沒有完成尚未
  • 0xF5,0,0x33,ö
  • 還沒有完成尚未
  • 0xFC有,0,值爲0x2F,ü
  • 還沒有沒有完成

希望幫助您或在該問題:)

下一個障礙

致以問候