问题标签 [scancodes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3379 浏览

linux - 使用 X11 在 Linux 上获取扫描码而不是键码

我正在尝试收听键盘输入(使用 X11 事件循环)并获取扫描码。这些扫描码应该是指一个键的物理位置,而不是它键入的字符。问题是,我能得到的只是 KeySyms 和 KeyCodes,它们针对不同的语言(例如 QWERTY 与 QWERTZ)进行了不同的映射。

我目前的解决方案是阅读“/usr/share/X11/xkb/keycodes/evdev”文件。它包含关键位置到关键代码的映射。使用它,我可以简单地将任何键码转换回扫描码。我的猜测是这不是一种稳定的做事方式。我对Linux完全不了解。这就是为什么我认为在这里问可能是个好主意。

假设大多数用户的机器正在使用这些 evdev 映射是否安全?如果没有,我还能在哪里找到实际使用的键映射?还是有更好的解决方案来解决这一切?

0 投票
4 回答
8522 浏览

windows - “暂停/中断”键的扫描码是什么?

我从这里下载“SharpKeys.exe” 。它运作良好。但我想将“暂停/中断”更改为另一个,此应用程序无法正确识别此键。有人知道扫描码吗?谢谢

0 投票
1 回答
785 浏览

assembly - ASM 用 ASCII 字符替换扫描码

我有这个代码:

它检查按键,每次我按下一个键时,我都会将它保存到注册 al 然后想打印出来。

但它只是被保存的扫描码,我需要用 ASCII 字符替换它,我用数组“键”来做,但它不起作用,只打印出 1 个键,然后程序就滞后了。

0 投票
2 回答
493 浏览

keyboard - Dvorak vs QWERTY 扫描码

Dvorak 键盘是否使用与 QWERTY 键盘相同的扫描码?我的意思是,字母 U 在两种类型的键盘上是否具有相同的扫描码?

或者,它更像是使用 QWERTY 键盘并移动塑料按键顶部以将其改装成 Dvorak 键盘?

谢谢。

0 投票
1 回答
431 浏览

autohotkey - 自动热键扫描码组合

我无法使以下任何一项工作:

如果我尝试运行脚本,这将失败并显示“无效的热键”。仅扫描代码就可以正常工作

我猜有一个语法问题......任何帮助将不胜感激!

编辑:

在此处输入图像描述

0 投票
1 回答
240 浏览

linux - linux/input.h 键码布局是否独立?

例如, in input.h,KEY_D等于 32。在 QWERTY 键盘上,D 是主行左起第三个“可打印”键。在 DVORAK 键盘上,同一个键标记为 E。所以,如果我在 DVORAK 键盘上按 E,我会得到KEY_D(32) 还是KEY_E(18)?

0 投票
3 回答
3041 浏览

windows - 如何从 PreTranslateMessage(MSG*pMsg) 中的 WM_KEYDOWN 中提取字符

PreTranslateMessage(MSG *pMsg)从 a 继承的 MFC 应用程序中CView,我有这个:

WM_KEYDOWNa中的字段在此处记录。虚拟键值VK_包含几个字段,其中16-23位是键盘扫描码pMsg->wParampMsg->lParam

所以在我的代码中我使用:

例如,在我的非美国键盘上,当我按下“#”字符时,我得到以下信息:

我想“捕获”或以不同方式处理的字符是 ASCII“#”,0x23(十进制 35)。

我的问题

无论语言或键盘布局如何,如何翻译WM_KEYDOWN信息以获得可以比较的内容?我需要确定#用户是否拥有标准的美国键盘或不同的键。

例如,我一直在研究以下功能,例如:


编辑:

长话短说:在美式键盘上,SHIFT+3 = #,而在法语键盘上 SHIFT+3 = /。所以我不想看单独的键,而是想了解角色。

在处理 WM_KEYDOWN 时,如何翻译 lParam 和 wParam(“键”)以找出键盘和 Windows 将要生成的字符?

0 投票
3 回答
1762 浏览

python - 如何确定笔记本电脑FN键盘按键HEX码?

我有一个 python 脚本,可以按FN+RightArrow等来控制特殊的亮度/音量功能。

我不知道FN按钮的十六进制代码。我试过255,但似乎不行。

我试图用 KeyView.exe 来确定它。它为按下的键提供十六进制代码。RightArrow 的值较小,而FN+的值RightArrow较大。我减去它们并找到FN价值(174或类似的东西)。但它也不是这样工作的。

我查看了一堆网站并安装了几个额外的工具,但我无法弄清楚。我可以通过其他方式自动降低亮度吗?

笔记本电脑是联想 Y50-70,我运行的是 Windows 10。

有什么想法吗,伙计们?谢谢!

0 投票
1 回答
898 浏览

visual-c++ - VC++:枚举虚拟键码列表以及所有可能组合键的扫描码

我想列举当前键盘布局支持的所有可能组合键的列表(带有虚拟键码、扫描码及其 Unicode 值)。将远程用户输入映射到键以模拟它们。

我期待一个像VC++ 的UCKeyTranslate (ObjectiveC) 这样的 API,它可以接受虚拟键码和修饰符(ALT、SHIFT、CTRL)并为我提供扫描码,但找不到类似的东西。

经过大量研究并花了整整 2 天的时间,除了 MapVirtualKeyEx 之外,我别无选择。

我附带了以下代码,但这有很多问题,

MapVirtualKeyEx 只为我提供了基本扫描代码的列表,而不是带有修饰符(ALT、CTRL、SHIFT)组合的键的扫描代码。有什么方法可以提供修饰符的组合作为函数的输入,以便生成所需的组合键?

任何帮助,将不胜感激。提前致谢。

0 投票
1 回答
136 浏览

scancodes - IBM 扫描码在哪里使用?

此页面有一个击键列表及其对应的扫描码。我对此感到困惑。我注意到每个扫描码都以 NUL 字符开头。这是否意味着当输入流接收到 NUL 字符时,这意味着将下一个字节解释为扫描码?另外,我很好奇什么平台使用这些,因为它们似乎没有在 Unix 系统上使用。在我的系统上,如果我想编写一个识别箭头键的程序,我只需为这些键使用三字节 UTF-8 代码。