问题标签 [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 回答
56 浏览

python - 有没有一种方法可以将 Sendkeys 与 Xinput 一起使用?

我试图找到一种将输入发送到已插入控制器的 XINPUT 按钮的方法。因此,一个 python 存储库(vjoy/pygame)将无法工作,因为它“添加”了一个控制器。

有谁知道这是否存在?

对于类似的比较,我可以通过使用 Direct X 扫描码和 Sendkeys 在我的键盘上使用 python 触发按钮,但我找不到 Xinput 或控制器的扫描码。

再次感谢!

0 投票
1 回答
44 浏览

windows - 如何在键盘扫描码和 USB 键盘使用指数之间进行转换?

我正在使用 Windows 虚拟键盘驱动程序来生成击键,它需要使用 USB 键盘使用索引来指定键。(有关使用索引和相应键的列表,请参阅“Windows 平台设计说明 - 键盘扫描代码规范”附录 C。)但是,我需要键入的键将由虚拟键代码指定。

Windows提供了虚拟键码和扫描码之间的转换功能,但是我还没有找到任何方法可以在扫描码和这些使用指标之间进行转换。除了编写我自己的函数来转换我的虚拟键盘驱动程序可能需要输入的数百种可能的扫描代码之外,微软是否提供了这样做的函数?

0 投票
0 回答
38 浏览

c - 如何在 SendInput 中使用 1x 扫描码作为参数

我正在使用带有扫描码作为参数的 SendInput()(使用 InteropServices,C#)。但是,我无法使用 R-ALT 发送组合。我正在使用带有 Bootcamp 的 Mac,并且 R-ALT 扫描码注册为 1x38(R-ALT + L-Control),但我不能使用 138(1x38?)作为扫描码参数(ushort/int)。

错误消息只是“当前上下文中不存在名称 x38”。

如何正确使用像 138 这样的扫描码作为 SendInput() 中的参数?

0 投票
2 回答
117 浏览

windows - 如何在 Windows API (Win32) 中扩展虚拟键代码?

我想在 Windows API 中创建一个新的虚拟键代码,我可以将扫描代码分配给并使用 GetKeyState 读取,但我找不到扩展枚举的方法。

我曾尝试在sharpkeys 中使用“未知”的虚拟键代码,但某些应用程序最终会注册这些虚拟键,从而使我的绑定过时。

https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

0 投票
0 回答
22 浏览

linux - 4 字节扫描码如何映射到 Linux 中的键码?

我在 Debian Buster 中弄乱了扫描码和键码,我发现了一些奇怪的东西。

使用sudo showkey -s我发现我的 USB 有线键盘的 PrintScreen/SysRq 键的扫描码是

0xe0 0x2a 0xe0 0x37 0xe0 0xaa 0xe0 0xb7,

也就是说,0xe0 0x2a 0xe0 0x37是按下它和0xe0 0xaa 0xe0 0xb7释放它的代码。

我的第一个问题是:为什么它使用两个扫描码(0xe0 0x2a0xe0 0x37)?这与其他扫描码不冲突吗?使用未使用的扫描码不是更聪明吗?

使用sudo showkey -k我发现 PrintScreen/SysRq 与内核键码相关联99,但是当我运行时sudo getkeycodes,没有 X 键码的条目107

的输出sudo getkeycodes

我的第二个问题是:如果上述输出中没有条目,PrintScreen/SysRq 从扫描码到键码的映射如何工作?

如有必要,我可以提供任何其他信息。

谢谢大家。

编辑 1:我意识到这种扫描码组合与 press 冲突Shift+ (Ctrl-PrtScn),我确认Shift扫描码是0x2a 0xaa通过运行sudo showkey -s,我在本文档中(Ctrl-PrtScn)找到了代码。

我已经搜索/usr/lib/udev/hwdb.d/60-keyboard.hwdb过这张地图,但没有找到任何东西。