资源简介
//调用方法:搜索所有USB设备..
USB.WhoUsbDevice(0, 0, Guid.Empty);
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Text.Regularexpressions;
using System.Windows.Forms;
namespace test
{
///
/// 即插即用设备信息结构
///
public struct PnPEntityInfo
{
public String PNPDeviceID; // 设备ID
public String Name; // 设备名称
public String Description; // 设备描述
public String Service; // 服务
public String Status; // 设备状态
public UInt16 VendorID; // 供应商标识
public UInt16 ProductID; // 产品编号
public Guid ClassGuid; // 设备安装类GUID
}
///
/// 基于WMI获取USB设备信息
///
public partial class USB
{
#region UsbDevice
///
/// 获取所有的USB设备实体(过滤没有VID和PID的设备)
///
public static PnPEntityInfo[] AllUsbDevices
{
get
{
return WhoUsbDevice(UInt16.MinValue UInt16.MinValue Guid.Empty);
}
}
///
/// 查询USB设备实体(设备要求有VID和PID)
///
/// 供应商标识,MinValue忽视
/// 产品编号,MinValue忽视
/// 设备安装类Guid,Empty忽视
/// 设备列表
public static int numb;//统计usb设备数量
public static PnPEntityInfo[] WhoUsbDevice(UInt16 VendorID UInt16 ProductID Guid ClassGuid)
{
numb = 0;
List UsbDevices = new List();
// 获取USB控制器及其相关联的设备实体
ManagementobjectCollection USBControllerDeviceCollection = new ManagementobjectSearcher(“SELECT * FROM Win32_USBControllerDevice“).Get();
if (USBControllerDeviceCollection != null)
{
foreach (Managementobject USBControllerDevice in USBControllerDeviceCollection)
{ // 获取设备实体的DeviceID
String Dependent = (USBControllerDevice[“Dependent“] as String).Split(new Char[] { ‘=‘ })[1];
// 过滤掉没有VID和PID的USB设备
Match match = Regex.Match(Dependent “VID_[0-9|A-F]{4}&PID_[0-9|A-F]{4}“);
if (match.Success)
{
UInt16 theVendorID = Convert.ToUInt16(match.Value.Substring(4 4) 16); // 供应商标识
if (VendorID != UInt16.MinValue && VendorID != theVendorID) continue;
UInt16 theProductID = Convert.ToUInt16(match.Value.Substring(13 4) 16); // 产品编号
if (ProductID != UInt16.MinValue && ProductID != theProductID) continue;
ManagementobjectCollection PnPEntityCollection = new ManagementobjectSearcher(“SELECT * FROM Win32_PnPEntity WHERE DeviceID=“ + Depend
相关资源
- C#引入Redis时所需四个DLL
- C#实现复数类,包括加减乘除乘方开方
- C#图像二值化代码
- 用遗传算法/模拟退火算法 求解旅行商
- 基于C#开发的图片处理工具
- C#简单工厂模式计算器
- C#SerialPort通信详细介绍
- 用C#窗体画一个可以指定角度的倾斜椭
- C# 实现贪吃蛇小游戏的设计编写
- winform窗体实现验证码功能
- C# winfrom窗体显示百度地图
- C#调用webservice查询实时天气
- C# 显示图片并且可以缩放和描绘矩形
- C#操作excel 类库
- Web程序设计—— ASP.NET实用网站开发课
- 测量程序设计,坐标正反算,方位角
- c#+AE 地图编辑、展示、鹰眼图
- c#银行取号代码
- c#图像噪声平滑处理
- c#做的快递查询
- c#实现四则混合运算
- C# 任务管理器
- STM32串口穿灰度图像,上位机实时显示
- C#遗传算法常用7种遗传算法源码
- C# 局域网文件传输与聊天程序源码
- C# USB数据接收与发送
- C# 用递归的方式查找指定文件夹下的
- C# DCT离散余弦变换
- 计算机网路 实现RS232通讯C#
- 在C#上可调用的FFT
评论
共有 条评论