我遇到了扫描码的挑战,以及如何将它们转换为虚拟键码和 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 方法进行映射吗?