用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: 自己开发应用,里边想自定义输入法键盘布局,但输入法服务仍然用系统输入法服务,应该怎么做?

从左到右翻译布局

移动端input的虚拟键盘影响布局

请问以前你提的问题:android开发:软键盘显示的时候把布局往上顶。是怎么解决的?是布局问题吗?

ios软键盘弹出再收起,页面布局错乱问题解决

android开发:软键盘显示的时候把布局往上顶