C#使用LibUsbDotNet实现USB设备检测

 更新时间:2024年07月28日 13:38:47   作者:xiaowu080  
C# LibUsbDotNet是一个.NET平台上的库,用于访问USB设备,它封装了Linux下的libusb库,LibUsbDotNet提供了一个简单的API,开发者可以利用这个库在C#中操作USB设备,本文介绍了C#使用LibUsbDotNet实现USB设备检测,需要的朋友可以参考下

学习记录。

首先,通信流程我们先撸一边,打开USB设备-》发送数据库-》接受数据-》关闭USB设备

根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备。

下面由我来对这个库的使用进行说明,目前,我们可以从 Github 以及 SourceForge 上下载对应的项目

LibUsbDotNet C# USB Library download | SourceForge.net

下载后是一个可执行文件,我们点击安装即可,它会安装好相关的库以及驱动文件,默认的安装目录为:C:\Program Files\LibUsbDotNet。在安装完成后,它会提示我们进入下面的对话框,这一步的目的是给特定的设备安装 libusb 驱动,因为只有安装了驱动的情况下,接下来的一切才会发生,除非 LibUsbDotNet 会隔空取物。

这里,我们还是选择鼠标这个硬件,你需要重点关注 PID 以及 VID 两个参数,因为这是唯一能区分不同 USB 设备的标识:

在这里插入图片描述

最后,点击 “Install” 按钮即可为当前设备安装 libusb 驱动。接下来的事情就变得非常简单啦,我们只需要通过 NuGet 安装。

第一步 nuget下载并安装 LibUsbDotNet;

第二步 查看所需打开设备的PID和VID

方法一:电脑上查看

方法二:代码查看 

using System;
using LibUsbDotNet;
using LibUsbDotNet.Main;
 
namespace LibUSBDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            GetUSBInfo();
            Console.ReadLine();
        }
 
        public static void GetUSBInfo()
        {
            UsbRegDeviceList allDevices = UsbDevice.AllDevices;
            Console.WriteLine("Found {0} devices", allDevices.Count);
            foreach (UsbRegistry usb in allDevices)
            {
                Console.WriteLine("----------------");
                Console.WriteLine($"Device info: {usb.Device.Info.ProductString}");
                Console.WriteLine($"Pid: { usb.Pid}, VID: {usb.Vid}");
            }
            Console.WriteLine(allDevices.Count);
        }
    }
}
 

到此这篇关于C#使用LibUsbDotNet实现USB设备检测的文章就介绍到这了,更多相关C# LibUsbDotNet USB设备检测内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#获取进程的主窗口句柄的实现方法

    C#获取进程的主窗口句柄的实现方法

    C#获取进程的主窗口句柄的实现方法,需要的朋友可以参考一下
    2013-04-04
  • AOP从静态代理到动态代理(Emit实现)详解

    AOP从静态代理到动态代理(Emit实现)详解

    AOP为Aspect Oriented Programming的缩写,意思是面向切面编程的技术。下面这篇文章主要给大家介绍了关于AOP从静态代理到动态代理(Emit实现)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09
  • 使用Spire.PDF在C#中创建和绘制PDF表单的方法步骤

    使用Spire.PDF在C#中创建和绘制PDF表单的方法步骤

    在日常开发中,我们经常需要处理各种文档,其中PDF因其跨平台、安全性高而成为企业级应用中不可或缺的一部分,然而,手动创建、填写或管理PDF表单无疑是一项耗时且易出错的任务,所以本文给大家介绍了如何使用Spire.PDF在C#中创建和绘制 PDF 表单,需要的朋友可以参考下
    2025-08-08
  • C#字符串和Acsii码相互转换

    C#字符串和Acsii码相互转换

    本文主要介绍了C#字符串和Acsii码相互转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • C#公众号开发之给用户发红包

    C#公众号开发之给用户发红包

    这篇文章主要为大家详细介绍了C#公众号开发之给用户发红包,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • C#多线程之线程池ThreadPool用法

    C#多线程之线程池ThreadPool用法

    这篇文章介绍了C#多线程之线程池ThreadPool的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C# MemoryStream的具体使用

    C# MemoryStream的具体使用

    MemoryStream是.NET中用于内存数据读写的流类,速度快且灵活,适用于临时缓存、二进制处理等场景,下面就来详细的介绍一下MemoryStream的使用,感兴趣的可以了解一下
    2025-07-07
  • 用C#做网络爬虫的步骤教学

    用C#做网络爬虫的步骤教学

    在本篇内容里小编给大家分享的是关于用C#做网络爬虫的步骤和方法,需要的朋友们可以参考下。
    2018-12-12
  • C#简单实现子窗体向父窗体传值的方法

    C#简单实现子窗体向父窗体传值的方法

    这篇文章主要介绍了C#简单实现子窗体向父窗体传值的方法,以实例形式较为详细的分析了C#窗体间传值的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • WPF中实现弹出进度条窗口的示例详解

    WPF中实现弹出进度条窗口的示例详解

    这篇文章主要为大家详细介绍了如何WPF中实现弹出进度条窗口,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11

最新评论