繁体   English   中英

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

[英]Detecting input from any USB HID in C# using HidLibrary

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

我想知道的是,当输入来自HID时,在HidLibrary中执行哪个功能? 或者,如果有比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);
}

暂无
暂无

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

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