Delphi调用WMI读取USB设备的PID和VID

WMI(WindowsManagement Instrumentation ) 非常强大,它可以以数据库的形式查询你的电脑的软件和硬件,在它的数据库里面,时刻保存着最新的软件信息和硬件信息,因此你可以用WMI来检测CUP 主频、温度,读取WINDOWS的进程.........

本文就介绍如何使用WMI读取USB设备的PID和VID码

1. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
2.
3.   Dialogs, StdCtrls, ExtCtrls,ActiveX, ComObj;
4.
5.
6.
7. procedure TForm1.Button2Click(Sender: TObject);
8.
9. var
10.
11. Locator: OleVariant;
12.
13. WMI: OleVariant;
14.
15. RET: OleVariant;
16.
17. Enum: IEnumVariant;
18.
19. Tmp: OleVariant;
20.
21. Value: Cardinal;
22.
23. begin;
24.
25. Locator := CreateOleObject('WbemScripting.SWbemLocator');
26.
27. WMI := Locator.ConnectServer('.', '', '', '');
28.
29. Ret := WMI.ExecQuery('SELECT * FROM Win32_USBHub');//这里Win32_USBHub为检测项,详见下表
30.
31.
32.
33. Enum:= IUnknown(RET._NewEnum) as IEnumVariant;
34.
35. while (Enum.Next(1, Tmp, Value) = S_OK) do
36.
37. begin
38.
39.   if Tmp.Name='USB Mass Storage Device' then
40.
41.      ShowMessage('这个u盘的硬件特征码是'+Tmp.PNPDeviceID);//Tmp为检测到返回的数据集合,其中PNPDeviceID为集合中的对象,包含了PID和VID码
42.
43. end;
44.
45.
46.
47. end;
48.
49.
50.
51. Win32_USBHub只是冰山一角,常用的还有以下
52.
53.
54.
55.   "Win32_1394Controller"                ,
56.
57.   "Win32_BaseBoard"                     ,
58.
59.   "Win32_Battery"                       ,
60.
61.   "Win32_BIOS"                          ,
62.
63.   "Win32_Bus"                           ,
64.
65.   "Win32_CacheMemory"                   ,
66.
67.   "Win32_CDROMDrive"                    ,
68.
69.   "Win32_CurrentProbe"                  ,
70.
71.   "Win32_DesktopMonitor"                ,
72.
73.   "Win32_DeviceMemoryAddress"           ,
74.
75.   "Win32_DiskDrive"                     ,
76.
77.   "Win32_DisplayConfiguration"          ,
78.
79.   "Win32_DisplayControllerConfiguration",
80.
81.   "Win32_DMAChannel"                    ,
82.
83.   "Win32_Fan"                           ,
84.
85.   "Win32_FloppyController"              ,
86.
87.   "Win32_FloppyDrive"                   ,
88.
89.   "Win32_HeatPipe"                      ,
90.
91.   "Win32_IDEController"                 ,
92.
93.   "Win32_InfraredDevice"                ,
94.
95.   "Win32_IRQResource"                   ,
96.
97.   "Win32_Keyboard"                      ,
98.
99.   "Win32_MemoryArray"                   ,
100.
101.   "Win32_MemoryDevice"                  ,
102.
103.   "Win32_MotherboardDevice"             ,
104.
105.   "Win32_NetworkAdapter"                ,
106.
107.   "Win32_NetworkAdapterConfiguration"   ,
108.
109.   "Win32_OnBoardDevice"                 ,
110.
111.   "Win32_ParallelPort"                  ,
112.
113.   "Win32_PCMCIAController"              ,
114.
115.   "Win32_PhysicalMemory"                ,
116.
117.   "Win32_PhysicalMemoryArray"           ,
118.
119.   "Win32_PnPEntity"                     ,
120.
121.   "Win32_PointingDevice"                ,
122.
123.   "Win32_PortableBattery"               ,
124.
125.   "Win32_PortConnector"                 ,
126.
127.   "Win32_PortResource"                  ,
128.
129.   "Win32_POTSModem"                     ,
130.
131.   "Win32_PowerManagementEvent"          ,
132.
133.   "Win32_Printer"                       ,
134.
135.   "Win32_PrinterConfiguration"          ,
136.
137.   "Win32_PrintJob"                      ,
138.
139.   "Win32_Processor"                     ,
140.
141.   "Win32_Refrigeration"                 ,
142.
143.   "Win32_SerialPort"                    ,
144.
145.   "Win32_SerialPortConfiguration"       ,
146.
147.   "Win32_SMBIOSMemory"                  ,
148.
149.   "Win32_SoundDevice"                   ,
150.
151.   "Win32_SystemEnclosure"               ,
152.
153.   "Win32_SystemMemoryResource"          ,
154.
155.   "Win32_SystemSlot"                    ,
156.
157.   "Win32_TapeDrive"                     ,
158.
159.   "Win32_TemperatureProbe"              ,
160.
161.   "Win32_UninterruptiblePowerSupply"    ,
162.
163.   "Win32_USBController"                 ,
164.
165.   "Win32_VideoConfiguration"            ,
166.
167.   "Win32_VideoController"               ,
168.
169.   "Win32_VoltageProbe"                  ,

时间: 2025-01-30 02:53:17

Delphi调用WMI读取USB设备的PID和VID的相关文章

usb-使用WMI获取 USB设备接口描述

问题描述 使用WMI获取 USB设备接口描述 我已经通过这篇文章C#:基于WMI查询USB设备 了解到使用通 SELECT * FROM Win32_PnPEntity WHERE DeviceID=" + Dependent 可以获取usb设备的deviceDescription 要查询usb的interfaceDescription 该用什么查询语句呢

wpf/winform通过WMI实现USB设备拔插检视

文用到的开源类,百度云下载:链接:http://pan.baidu.com/s/1kVJfGsJ   密码:tkna 1.首先USB工具类DriveDetector.cs: using System; using System.Collections.Generic; using System.Linq; using System.Management; using System.Text; using System.Threading.Tasks; namespace StarsCloud.C

C# 调用WinApi访问Usb设备 Usb设备端口若是interrupt能够接收数据 若未bulk程序接收到超时

问题描述 c#使用Windowsapi访问usb设备hid.dllkernel32.dllsetupapi.dll当给设备发送数据时如果设备端口使用interrupt方式,发送数据成功如果设备端口使用bulk方式,发送数据失败,Marshal.GetLastWin32Error()返回121超时错误 解决方案

usb设备-WIN7知道USB的PID和VID怎么实现USB断电、通电

问题描述 WIN7知道USB的PID和VID怎么实现USB断电.通电 在WIN7上知道USB设备的Pid VID怎么实现类似拔掉U盘一样断电功能,和 对应这个设备通电功能

vb usb设备 pid-用vb判断已知vid pid的USB设备是否连接OK?

问题描述 用vb判断已知vid pid的USB设备是否连接OK? 已通过设备管理器知道了USB设备的vid pid,可否根据设备PID和VID查询设备是否存在?非存储设备,例如ipad.iphone.usb摄像头等设备

vid pid-windows列举usb设备VID PID

问题描述 windows列举usb设备VID PID C++获取windows usb 设备信息VID和PID 解决方案 USB设备的VID与PIDUSB设备的VID和PIDUSB设备的VID和PID 解决方案二: http://www.codeproject.com/KB/system/HwDetect.aspxhttp://www.cnblogs.com/SunYu/archive/2010/04/29/1723977.html 解决方案三: 不知道你是用windows的什么设备,wince

ubuntu-linux系统利用libudev获取USB设备的VID和PID?请各位大侠帮一忙,谢谢!

问题描述 linux系统利用libudev获取USB设备的VID和PID?请各位大侠帮一忙,谢谢! 我在Ubuntu14.04终端下lsusb可以看到识别到的USB设备,但是Unable to find parent usb device.我的设备会虚拟出串口,如ttyUSB0,ttyUSB1,ttyUSB2,我想知道如何获取该设备的VID和PID,通过网上找的代码,不知道如何修改以下两个函数的相关参数? udev_enumerate_add_match_subsystem(enumerate,

USB设备驱动概述

USB设备驱动 ·  17.1 USB总线协议 ·  17.1.1 USB设备简介 ·  17.1.2 USB连接拓扑结构 ·  17.1.3 USB通信的流程 ·  17.1.4 USB四种传输模式 ·  17.2.1 观察USB设备的工具 ·  17.2.2 USB设备请求 ·  17.2.3 设备描述符 ·  17.2.4 配置描述符 ·  17.2.5 接口描述符 ·  17.2.6 端点描述符 ·  17.3.1 功能驱动与物理总线驱动 ·  17.3.2 构造USB请求包 ·  17

嵌入式linux产品USB设备动态监控技术研究

  嵌入式linux产品USB设备动态监控技术研究   笔者最近在做PVR项目的开发工作,涉及到使用移动硬盘作为刻录节目的存储空间.目前市场上的PVR产品大多采取内置硬盘的方式,但是对于客户来说不是很实惠,内置的硬盘客户无法作为他用,所以开发用外置USB接口的移动硬盘的PVR产品在市场上是很有的竞争力的,其他类似产品也是一样.首先我们需要正确地挂载到系统中,鉴于目前用户移动硬盘的文件系统可能有FAT32/NTFS/EXT2等多种,还有就是用户的移动硬盘可能有好几个分区,也不知道各个分区的文件系统