2017-07-11 57 views
1

我正在使用digispark arduino兼容設備來模擬美國佈局的鍵盤(它使用DigiKeyboard.h作爲庫來執行此操作)。 現在,它只需要輸入一個整數代表一個密鑰,並按照USB鍵盤標準發送到計算機,一切都很好,直到這一點。使用python轉換鍵盤佈局

問題是我需要這個設備來處理每個鍵盤佈局,我的問題是:有沒有辦法將代表一個字符的數字值翻譯成代表任何其他佈局中相同字符的數字值使用python?顯然,我無法通過計算機上的軟件更改佈局。

例如:假設在美國佈局中,字符「x」表示爲數字1.在ES佈局中,字符「x」表示爲數字2.我需要一個假設函數,給定數字1個將輸出數字2

編輯:有一些研究,無法找到一個妥善的解決辦法,然而hak5團隊已經開發了橡皮鴨類似的東西,你可以找到關於github

+0

看看這個[問題](https://stackoverflow.com/questions/292095/polling-the-keyboard-detect-a-keypress-in-python) –

回答

0

有用的文件在簡而言之:這是不可能的。

庫不支持,讓我解釋遠一點:

我產生了「查找表」(使用問題中提到的hak5文件),這讓我檢查哪個鍵+修飾符用於表示給定佈局中的給定字符(相當好的軟件實際上是);我發現圖書館僅支持「shift」修飾符(在其他佈局中需要alt-gr)時,這是一個很大的讓步。 「keystroke」按以下方式編碼:7位用於表示字符的ASCII碼(顯然,它只支持美式鍵盤中的7位ASCII字符),而最重要的位表示是或不是修飾符被使用。

TL; DR: DigiKeyboard僅支持一個修飾符,僅適用於美國佈局(或類似)。

它使用這個tool快速和骯髒的解決方法來翻譯在digispark之一使用hak5團隊寫的工具橡膠鴨腳本。