HID(USB)的.NET API是什么?

26

在.NET(C#)中是否有用于使用USB HID(人体界面)设备的API?


重复问题:https://dev59.com/zHVD5IYBdhLWcg3wKYL- - Morten Frederiksen
1
并不完全是重复的问题 - 这个问题涉及到HID(我假设是指“无需驱动”的HID),因此其他问题的答案并不都适用于这个问题。 - HanClinto
不,HID 实际上指的是所有现有或尚未发明的人类可能与之交互或不太交互的设备。无论是温度传感器、按钮还是色度计,都可以被视为 HID 设备。它们输入一些数据,输出一些数据(数量较少)。 - Robetto
没错。https://github.com/MelbourneDeveloper/Hid.Net。它支持 .Net Core、Framework、Android 和 UWP。 - Christian Findlay
8个回答

11

HidLibrary 将所有P/Invoke调用进行了封装。但看起来并没有针对USB设备的良好框架API。


4
对于 HidLibrary 我的评价是加一分。我曾经尝试自己写一个 C# 封装库来调用 kernal32 和 hid.dlls,但 HidLibrary 已经完成了大部分工作,并提供了一个简单干净的 API,让我快速上手(仅需几分钟)。此外,你还可以通过 nuget 安装它,这很方便。虽然也有其他的 C# hid.dll 封装库,但我没有见过像这个一样简洁明了的。 - ptrandem
1
该库已不再受支持。 - tarabyte
HidLibrary仅支持Windows。Device.Net支持Android、Windows和UWP上的Hid和USB。https://github.com/MelbourneDeveloper/Device.Net - Christian Findlay

4

这里是我处理HID设备的小型库。

它可能会很有用,尤其是当您尝试使用原始HID报告进行通信时。我还包含了一个简单的演示,展示如何使用它。


3

这里没有直接或高级的方法。 通过托管的 WMI API,您可以做一些事情,但我个人发现与硬件交互的大部分WMI都是晦涩难懂的,并且需要很多反复试错才能让它按您想要的方式运行。

The Code Project 上的某位开发者开发了一个 .NET USB HID 组件,您可以尝试一下,它可能比WMI更适合您的需求。


2
我建议你跟随这个例子。在使用C#进行HiD开发时,它对我非常有帮助。

1

为什么?一个任天堂Wiimote库?! - jco
3
因为Wiimote在Windows下是一个HID设备,而那个CodePlex项目已经在HDImports类中为你完成了与CLR通信所需的所有P/Invoke工作。 - squig
这并没有回答问题。 - Dark Star1

1

试着看看这个:简单的HID库。主页上有其他开源库的列表。


1
它非常不稳定,特别是在Win7上。 - Saw

1

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接