2012-07-11 51 views
6

我試圖將從/ dev/input/event0中讀取的鍵盤事件從嵌入式應用程序中定義的值不運行X或終端。如何將Linux密鑰從/ dev/input/event *轉換爲ASCII

我認爲這應該通過在Linux內定義的鍵映射功能來完成,而不是僅僅創建自己的std :: map <>但我似乎找不到一個開始的好地方。到目前爲止,我發現的大多數例子都假設我使用X窗口或終端運行。

+0

找到任何的源代碼實現了終端可以是有趣的。雖然它可能被埋藏在40年以上的抽象時期以支持傳統終端。 – 2012-07-11 15:33:53

+0

是的,一直在挖掘kdb-1.12.tar.gz,但不斷失去蹤跡。 – 2012-07-11 17:14:15

+0

這有幫助嗎? [Derek @ TheDailyLinux在編程中»從事件設備節點獲取原始鍵盤輸入(/dev/input/event)](http://www.thelinuxdaily.com/2010/05/grab-raw-keyboard-input-from -event設備節點-devinputevent /) – kbulgrien 2012-08-28 16:16:07

回答

1

文本輸入(除了傳統的美國鍵盤和7位ASCII標準的非常簡單的情況外)是一個非常複雜的領域。我強烈建議你使用X客戶端來做這件事,你可以利用所有現有的輸入法。

但是,如果你必須,而且你對一種鍵盤和一種語言感到滿意,你可以像終端那樣解釋事件來做到這一點。請檢查/usr/include/linux/input.h中的定義值。跟蹤Shift和Ctrl鍵的位置(當然,非Alt鍵,Alt鍵,Fn鍵等等,當然是由你來解釋),並在鍵盤上發出相應的字節。如果默認設置不適用於您的應用程序,也許您也會想要實現自動重複功能。

但基本上:不。這是一個比你似乎意識到的更難(!)更難的問題。

相關問題