将任何unicode字符串转换为相应的虚拟键(扫描)代码

时间:2018-06-28 15:52:16

标签: python

在Python中,是否可以将任何Unicode字符串转换为需要在键盘上键入的键码(在键盘上)?

说,如果英语“ h”和俄语“р”都由一个键键入,那么这些键必须具有相同的代码。

结果,我需要将字符串表示形式作为键控代码的数组。

2 个答案:

答案 0 :(得分:2)

鉴于那里有大量的键盘布局,您需要一种方法来回答“要使用哪个键盘映射?”这一问题。例如,在美国键盘上,“ Q”是扫描代码24,但是在法语键盘上,相同的字母是在不同的扫描代码上(而“ A”-> 24则相反)。

您可以将其限制为运行此主机的主机上安装的键盘布局。然后,对于可以在主机上的上键入的任何字符,您都可以找到它来自哪个键(假设您没有两个布局相同且字母位于不同位置,例如,美国(qwerty)和法语或德沃夏克语。

获取键映射的方式特定于操作系统,例如,如果这是具有XOrg驱动显示器和键盘的台式机,则可以运行xmodmap -pk并读取其输出。它具有所有键码及其映射到的所有字符的列表(每个键码一行,并且映射到几个字符)。使用subprocess模块来运行xmodmap或您的操作系统必须使用的任何实用程序才能获取键盘映射并将其读入程序。

答案 1 :(得分:-1)

使用getch获取关键参考,然后使用ord函数获取与此角色相同的数字

ord(getch())

请记住,数字和按钮可能会根据用户键盘进行更改