繁体   English   中英

如何模拟物理键盘输入

[英]How to simulate physical keyboard input

我正在使用从多个指定的条形码扫描仪读取的 C# Winforms 项目(应用程序需要从扫描仪中分离数据才能采取正确的行动)

我使用原始输入按设备 ID 过滤,它工作正常。

现在我想开发一个模拟扫描仪(键盘)输入的测试应用程序(模拟日常工作)

我试过一些文章告诉我使用 Windows API 例如 SendInput、SendMessage ......但它不包含真实的设备 ID(物理设备 ID),所以我的测试应用程序无法识别这些输入。

隐藏设备 ID 如下所示:\??\HID#Vid_0536&Pid_01c1&MI_01#9&25ca5370&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}

有没有使用 C# 和 Winforms 模拟物理输入设备? 或使用物理(或假)设备 ID 将密钥发送到活动应用程序?

谢谢你。

我们与扫描仪合作。 如果我们进行扫描,那么我们对旧的 WinForms 程序使用 TextControl。 在该 TextControl 输入中,可以通过键盘选择,也可以通过任何扫描仪选择。 有时您需要特殊的扫描仪控件来接受该数据,扫描仪文档也会告诉您如何(添加)将它们与条形码一起发送。

因此,当扫描仪将其数据发送到 TextControl 时,扫描仪也会发送“返回”键以供接受。 是的,您可以将带有 Windows API 的附加键盘输入发送到。 如果您以这种方式使用它,那么扫描仪的技术 sh1t 将被解耦,因为它只是 TextControl 的输入设备,只要它被识别为(usb)输入设备,它就可以是任何东西。

我已经通过创建一个假键盘结束了这个问题,将 id、name 等设置为空,在原始输入处理程序中,我检查按下的键,如果没有硬件 ID,假设是来自假 ID 和 append 假设备该消息的 ID,现在模拟器正在运行。 谢谢你的支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM