使用HidLibrary检测C#中任何USB HID的输入

首先,我是C#的新手。 我想创建一个检测任何usb隐藏设备的应用程序(我已经使用过HidLibrary并且它检测到了HID)但我也希望从hid获得输入(我使用了Raw输入但是这不起作用我认为它只是用于键盘)。 例如,如果我已连接鼠标,那么来自该鼠标的任何类型的输入移动或点击将导致function运行。

我想知道的是,当输入来自HID时,在HidLibrary中执行哪个function? 或者,如果有比HidLibrary更好的选择。 如果你能提供任何代码片段,我将非常感谢:)

与我使用的其他人相比,HidLibrary相当不错,所以试着坚持下去。

当Data进来时,它会触发您在初始化HidDevice时分配的“OnReport”处理程序。

例如

_myDevice = HidDevices.Enumerate(myVendorId, myProductId).FirstOrDefault(); if (_myDevice != null) { _myDevice.OpenDevice(); _myDevice.Inserted += DeviceAttachedHandler; _myDevice.Removed += DeviceRemovedHandler; _myDevice.MonitorDeviceEvents = true; // this is where we start listening for data _myDevice.ReadReport(OnReport); } 

在这种情况下,“OnReport”是事件处理程序的名称,只要数据从您的设备到达,就会调用它。 名称“OnReport”不是很具描述性,但是这些示例都使用了这个名称,所以我也在我的代码中坚持使用它。 重要的是,在处理程序结束时,您要求设备在更多数据到达后再次激活,因此OnReport函数中的最后一行再次调用ReadReport。

 private void OnReport(HidReport report) { if (attached == false) { return; } // process your data here var byteFromMyDevice = report.Data[0]; // we need to start listening again for more data _myDevice.ReadReport(OnReport); }