-1

我遇到了扫描码的挑战,以及如何将它们转换为虚拟键码和 ASCII。

我正在使用 Interception/Oblita 库来检索来自条形码扫描仪的所有扫描码。常规击键击键,如“A”“!” 而不是通过 InputSimulator 库转发的问题(链接:https ://www.nuget.org/packages/InputSimulator/ )

尝试使用丹麦语键盘布局转发特殊字符(如 ¨ 或 `)时会出现问题。

我在输入¨(Keydown)时收到这些扫描码

56 82 79 77 72

应该对应于 L-Alt + 0168 但是当转换为虚拟键时,我得到这个结果: L-ALT + INSERT + END + RIGHT + UP

我使用 user32 dll 中的 MapVirtualKey 映射键,扫描码和 maptype = 1 (MAPVK_VSC_TO_VK)

如何正确映射它们以便获得 Alt 组合键?是因为我需要使用另一种 p-invoke 方法进行映射吗?

4

1 回答 1

1

经过长时间的反复试验,我似乎解决了这个问题。在拦截库中有一个“发送”方法,用于转发捕获的击键 - 我不知道为什么我以前没有使用过这个方法,因为它解决了转换问题。

于 2020-01-03T08:08:02.640 回答