2010-09-14 331 views
2

每當在常規鍵盤上按下某個鍵時,會向計算機發送數字「密鑰代碼」,例如, 32或51代表特定的鍵。更改USB鍵盤的按鍵

無關的,我現在用的輸入這個帖子我默認的鍵盤,我希望能夠通過USB的鍵盤插上,並有其關鍵代碼都是由一些常數C.移

因此,當按這個側面鍵盤上的'a'鍵,計算機將不會收到'a'的鍵碼,而是計算機沒有計劃響應的一些更高的數字。

這些超出常規範圍的擊鍵將控制我的程序,它知道它們是什麼,並且會聽它們。

硬件或軟件解決方案將適用於我。也許有爲此專門出售的鍵盤,或者一些軟件相關的修改可以讓任何普通鍵盤都能完成 - 我不知道。最重要的是,鍵碼轉換僅適用於我的側面鍵盤,而不是我用於常規的東西的默認鍵盤。

我在Windows上。

+1

奇怪,但有趣... – 2010-09-14 06:34:50

回答

1

我認爲你限制自己遠超過必要。

首先,您對USB鍵盤的描述被簡化了很多。情況比這更復雜一點。例如,你實際上得到了按鍵/按鍵順序。 (也被稱爲make和break)。

接下來就是您對操作系統處理鍵盤做出了一些假設。如果第二個鍵盤聲稱它是USB鍵盤,則它將由操作系統驅動程序處理USB鍵盤。這不會預期轉移的價值。例如,在Microsoft Windows,以下行爲被記錄在案:

避免設置1個掃描碼以上x79的, 發佈以來(鍵上)代碼將 是0xFA迴應或更大,鍵盤 驅動程序已知將這種值作爲來自8042 芯片的響應來解釋,而不是作爲按鍵(掃描碼)。

接下來,操作系統會假定一個額外的密鑰將提供額外的密鑰,並直接處理它。例如,有數字USB鍵盤可用於筆記本電腦,Windows只會將它們視爲額外的0-9 + -/* =鍵。它並不在意它們在單獨的硬件上。基本上,我不認爲這第二個keayboard想法會飛。

現在USB通常將鍵盤當作更通用類的一個特例,它更靈活:HID = Human Input Devices.。例如,USB操縱桿也是人機輸入設備,典型的操作系統不會嘗試解釋操縱桿按鈕。遊戲預計會直接處理它們,你的應用程序也可以。