我想在击键后更改虚拟键,我使用原始输入来获取设备信息。 实际上,我有两个键盘(一个键盘和一个条形码扫描仪),通过原始输入,我可以得到击键来自一个键盘,但如果它们来自条形码扫描仪,我需要更改虚拟键。将它们更改为
"KeyChar = Convert.ToChar(0);"
可以吗,那怎么办?
我不确定你在问什么或你所处的确切环境,但我一直在使用Winforms使用条形码扫描仪,并且我需要首先获取扫描的文本,对其进行一些更改,然后将其发送到表格中。捕获击键很容易,但您如何知道它们是来自条形码扫描仪还是键盘?
我使用的技巧是条形码格式。它们通常有一个开始和停止标志,例如 $。使用扫描仪并将某些内容扫描到记事本中,您就会看到。
然后使用此标志作为开始捕获击键的方式。因此,对于每个 $,您开始捕获接下来的每个击键,然后在下一个 $ 处停止捕获,获取该字符串并对其执行任何您想要的操作。使用 SendKeys 将结果发送回表单(假设您至少已删除开始/停止标志)。
请注意,这仅适用于 code-xxx 条形码。对于 GTIN 标准,他们通常不使用开始或停止标志,因此有点棘手。
覆盖 PreProcessMessage 并处理键盘消息。