2017-02-14 118 views
1

我需要将输出报告发送到USB“键盘”,但在USB设备上使用CreateFile时,Windows返回无效句柄。这是因为Windows使设备以独占模式打开。我仍然如何将输出报告发送到键盘?在C#中设置USB键盘状态

我已经看过HidP_Xxxx函数,但它们都需要CreateFile才能成功并生成有效的句柄。此外,直接输入的SendDeviceData的文档说,没有设备将使用它并使用HID。 HID文档的链接在该页面上被打破。

+0

键盘是不是USB输入设备,而不是输出设备。你如何期望做任何输出到键盘?另外,代码在哪里? – dumetrulo

+0

USB键盘支持写入LED状态报告。我试图与之交谈的“键盘”实际上是一个条形码扫描器,文档声明发送1个字节的输出报告时,LED状态位以特定顺序设置/清除。这是使条码扫描器进入正确模式所必需的。 – DevLocus

+0

尝试使用HIDAPI:http://www.signal11.us/oss/hidapi/ –

回答

0

也许这是条形码扫描仪的驱动程序(.inf文件),它设置在注册表中的某些特定键的问题,请参见以下链接

也许使用一个程序像USBDeview清理注册表,并重新安装扫描仪(检查inf文件为AddReg进入)或尝试删除独占访问注册表项条形码扫描器手动

除了窗口10 hidscanner.dll似乎是车https://answers.microsoft.com/en-us/windows/forum/windows_10-hardware/pos-hid-barcode-scanner-drivers-being-deleted/206b5354-06e0-47cb-98b8-805f525e130ehttps://answers.microsoft.com/en-us/windows/forum/windows_10-hardware/windows-10-with-pos-hid-barcode-scanner/2adc8ea9-556c-4b85-98fe-3b625c37ab76

+0

条形码扫描仪作为USB键盘类设备连接到系统,使用“无人驾驶”HID设置。没有.inf文件来纠正Windows独占访问USB键盘类设备的行为。对USB键盘类设备的独占访问被硬编码到Windows设备管理系统中。他们出于安全原因这样做(即试图阻止键盘记录器打开另一个只读键盘的句柄)。 – DevLocus

+0

不知道,lala答案undeleted也许它有助于某人... –