问题标签 [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 投票
4 回答
613 浏览

java - 将字符映射到国际键集的键码

所以我构建了一个 pi 零键盘模拟器,如此处所述:

https://www.rmedgar.com/blog/using-rpi-zero-as-keyboard-setup-and-device-definition

我让它输入从本地文本文件中读取的文本(一切都是用 java 开发的——出于某种原因:))。
我现在的问题是,我的 pi 零连接到的各种计算机上的配置键集差别很大(德语、英语、法语……)。根据计算机的不同,这会导致几个打字错误(例如,用 z 代替 y)。

所以我现在建立了一些“翻译表”,将字符映射到适合计算机的键码。这样的表如下所示:

为许多不同的键盘布局拥有这样的表格是一件痛苦的事情。是否有一些更聪明的版本可以将字符映射到特定键盘布局的扫描码?

如果没有 - 是否有某种存档,我可以在其中找到这样一个字符到扫描码映射的许多不同键盘布局?

非常感谢

0 投票
1 回答
584 浏览

c# - 如何在 Automation Anywhere 等 RPA 工具中模拟击键

我很想知道像 AA 和 UiPath 这样的顶级 RPA 工具如何模拟应用程序的击键。我已经使用 Keybd_event 构建了一个应用程序来模拟击键,但我一直面临keybd_event的扫描码参数问题- 因为它需要在Citrix 环境中执行击键。

如下代码在 citrix 环境中运行良好,但在本地应用程序中存在问题。

如果使用标志 2,它在本地应用程序中运行良好,但 SHIFT、ESC 和功能键在 citrix 应用程序中不起作用。

请建议如何使用该标志使此代码在 citrix 和本地应用程序中工作。

API 参考:

MapVirtualKey MSDN

Keybd_event MSDN

0 投票
3 回答
819 浏览

windows - 如何确定是否存在小键盘以及如何获取小键盘输入键的扫描码?

我想在我的程序中添加某些行为,将函数绑定到小键盘输入键(如果存在),或者绑定备用键(如果不存在)。

据微软称:

扫描码是用户按键时键盘硬件生成的值。它是一个与设备相关的值,用于标识按下的键,而不是键所代表的字符。应用程序通常会忽略扫描代码。相反,它使用独立于设备的虚拟键代码来解释击键消息。

(资源)

我知道在我的键盘上它是 0x9C (156),但这不能保证适用于所有键盘。

我不能使用MapVirtualKey()andVK_RETURN因为MAPVK_VK_TO_VSC它总是返回键盘中心主返回键的扫描码。

我如何在没有用户干预的情况下获取这些信息?

我的语言是 C/C++,这仅适用于 Win32。

0 投票
0 回答
321 浏览

android - 在运行时更改和刷新 Generic.kl 文件

我正在做一个可以在android上重新映射键的代码。为此,我从用户那里获取输入,并使用扫描码和键码的标准映射,我在运行时重写 Generic.kl 文件以更改选择的元素。在此之后我保存并重新启动。问题是没有任何变化。我也可以删除 Generic.kl 文件,但没有任何更改。是否有特殊的刷新选项?有什么解决办法吗?

0 投票
1 回答
477 浏览

linux - Linux asm - int 16h 模拟读取原始键盘扫描码

对于我的学习,我需要在 asm 上编写一个程序,它会等到键盘按键被按下,然后打印它的扫描码和按键字符的 ASCII 码。

我知道 BIOSint 16h可以完成这项工作,但我现在使用的是 Linux,找不到合适的模拟系统调用。

我应该用什么来完成这项任务?我目前正在为我的汇编代码使用 Debian Stretch 和 NASM。

0 投票
1 回答
55 浏览

mysql - 键盘键编号

我正在使用 MySQL 和 PHP 创建一个键盘数据库。

是否有一种标准方法可以根据物理位置对键盘上的各个键进行编号?

我想在我的数据库的索引列中使用这些数字。我一直在看这个,但它缺少一些较新的键:

https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.keyboardtechref/doc/kybdtech/Key.htm#dbffbe3450dagi

使用扫描码可能是另一种选择,但在十进制和十六进制之间来回转换会很麻烦。此外,某些键有时有两组扫描码,这对我的数据库来说是个问题。谢谢。

0 投票
1 回答
165 浏览

c - GetKeyNameText 的反向操作

我们可以使用它GetKeyNameText()来检索表示键名的字符串。有没有办法做相反的事情,即为给定的键名获取扫描码或虚拟键?

我想将键名写入配置文件,以便用户可以轻松编辑它们。当我读入配置文件时,我需要做相反的GetKeyNameText().

0 投票
0 回答
140 浏览

assembly - 如何在 NASM 中将字符一个接一个地组合成一个字符串?

问题
发现问题ASM 用 ASCII 字符替换扫描码并使用它的答案(稍作修改以将特殊字符视为 ASCII,而是将特定值移动到缓冲区)我能够从键盘输入中获取单个字符,怎么可能然后组合成一个完整的字符串?

尝试
下一节中的过程 #1 工作并正确输出输入,直到它捕获 Enter 按键

但是当stosb被添加时,它甚至在输出第一个字符之前就停止这样做(过程#2)

#1

#2

预期结果:缓冲区中的字符串
实际结果:

编辑:评论中要求的 程序键盘

它大部分被复制了,但它似乎具有正确的价值,并且不太可能是问题的原因

0 投票
1 回答
541 浏览

python - 将字符串转换为 pyvbox 的扫描码

我正在尝试使用 pyvbox 将一些文本输入到虚拟机中,但它将键盘输入作为键盘扫描码列表。我想将常规 Python 字符串转换为扫描码列表。

我知道我可能会通过尝试每个扫描码并查看我得到的结果来强制它,但我想知道那里是否有图书馆或类似的东西。AFAIK,扫描码依赖于键盘布局,因此可能需要配置键盘布局。

0 投票
1 回答
633 浏览

python - 制作游戏机器人时直接输入命令不起作用

我一直致力于使用 python 自动化 GTA V。为了提供输入,我尝试了“pyautogui”,但它没有按预期工作。我用谷歌搜索并在 stackoverflow 上得到了这个解决方案(谢谢你,Sentdex!):

模拟 Python 按键以控制游戏

我使用了 'Hodka' 给出的解决方案,做了一些更改(就像 senddex 一样),这是我的以下代码..

然后执行动作...

我在 GTA V 上运行了这个试用代码,玩家一动不动。然后我在 GTA Vice City 和另一个游戏上尝试了这个代码,玩家无限期地向前迈进了一步(因为代码,但至少它在那里工作。)我不明白相同的代码是如何在一个游戏中运行的,但是不在另一个?救我。如何在 GTA V 上运行它!?