用python翻译键盘布局
Posted
技术标签:
【中文标题】用python翻译键盘布局【英文标题】:Translate keyboard layout with python 【发布时间】:2017-07-11 16:01:56 【问题描述】:我正在使用与 digispark arduino 兼容的设备来模拟具有美国布局的键盘(它使用 DigiKeyboard.h
作为库来执行此操作)。
现在,它只需要一个表示键的整数作为输入,然后按照 USB 键盘标准将其发送到计算机,到此为止一切正常。
问题是我需要这个设备来处理每个键盘布局,我的问题是:有没有办法将表示字符的数值“转换”为表示任何其他布局中相同字符的数值Python?显然我无法通过电脑上的软件更改布局。
示例:假设在 US 布局中,字符“x”表示为数字 1。在 ES 布局中,字符“x”表示为数字 2。我需要一个给定数字 1 的假设函数将输出数字 2。
编辑:进行了一些研究,找不到合适的解决方案,但是 hak5 团队已经为橡皮鸭开发了类似的东西,您可以在 github 上找到有用的文件
【问题讨论】:
看看这个question 【参考方案1】:简而言之:不可能。
库不支持,让我再详细说明一下:
我已经生成了一个“查找表”(使用问题中提到的 hak5 文件),它允许我检查使用哪些键 + 修饰符来表示给定布局中的给定字符(非常好实际上是一个软件);发现该库仅支持“shift”修饰符(而在其他布局中需要 alt-gr),我感到非常失望。 “击键”的编码方式如下:7位用于表示字符的ASCII码(显然它只支持美式键盘中的7位ASCII字符),而最高位表示是否使用了修饰符。
TL;DR: DigiKeyboard 仅支持一种修饰符,使其仅适用于美国布局(或类似布局)。
一个快速而肮脏的解决方法是使用这里的tool 使用 hak5 团队编写的工具在 digispark 中翻译一个橡皮鸭脚本。
【讨论】:
以上是关于用python翻译键盘布局的主要内容,如果未能解决你的问题,请参考以下文章
Android: 自己开发应用,里边想自定义输入法键盘布局,但输入法服务仍然用系统输入法服务,应该怎么做?