当前位置: 首页 > news >正文

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

以下代码出自http://blog.csdn.net/hellogv/,引用请注明出处!


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

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

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls,ActiveX, ComObj;



procedure TForm1.Button2Click(Sender: TObject);

var

Locator: OleVariant;

WMI: OleVariant;

RET: OleVariant;

Enum: IEnumVariant;

Tmp: OleVariant;

Value: Cardinal;

begin;

Locator := CreateOleObject('WbemScripting.SWbemLocator');

WMI := Locator.ConnectServer('.', '', '', '');

Ret := WMI.ExecQuery('SELECT * FROM Win32_USBHub');//这里Win32_USBHub为检测项,详见下表



Enum:= IUnknown(RET._NewEnum) as IEnumVariant;

while (Enum.Next(1, Tmp, Value) = S_OK) do

begin

  if Tmp.Name='USB Mass Storage Device' then

     ShowMessage('这个u盘的硬件特征码是'+Tmp.PNPDeviceID);//Tmp为检测到返回的数据集合,其中PNPDeviceID为集合中的对象,包含了PID和VID码

end;



end;



Win32_USBHub只是冰山一角,常用的还有以下



  "Win32_1394Controller"                ,

  "Win32_BaseBoard"                     ,

  "Win32_Battery"                       ,

  "Win32_BIOS"                          ,

  "Win32_Bus"                           ,

  "Win32_CacheMemory"                   ,

  "Win32_CDROMDrive"                    ,

  "Win32_CurrentProbe"                  ,

  "Win32_DesktopMonitor"                ,

  "Win32_DeviceMemoryAddress"           ,

  "Win32_DiskDrive"                     ,

  "Win32_DisplayConfiguration"          ,

  "Win32_DisplayControllerConfiguration",

  "Win32_DMAChannel"                    ,

  "Win32_Fan"                           ,

  "Win32_FloppyController"              ,

  "Win32_FloppyDrive"                   ,

  "Win32_HeatPipe"                      ,

  "Win32_IDEController"                 ,

  "Win32_InfraredDevice"                ,

  "Win32_IRQResource"                   ,

  "Win32_Keyboard"                      ,

  "Win32_MemoryArray"                   ,

  "Win32_MemoryDevice"                  ,

  "Win32_MotherboardDevice"             ,

  "Win32_NetworkAdapter"                ,

  "Win32_NetworkAdapterConfiguration"   ,

  "Win32_OnBoardDevice"                 ,

  "Win32_ParallelPort"                  ,

  "Win32_PCMCIAController"              ,

  "Win32_PhysicalMemory"                ,

  "Win32_PhysicalMemoryArray"           ,

  "Win32_PnPEntity"                     ,

  "Win32_PointingDevice"                ,

  "Win32_PortableBattery"               ,

  "Win32_PortConnector"                 ,

  "Win32_PortResource"                  ,

  "Win32_POTSModem"                     ,

  "Win32_PowerManagementEvent"          ,

  "Win32_Printer"                       ,

  "Win32_PrinterConfiguration"          ,

  "Win32_PrintJob"                      ,

  "Win32_Processor"                     ,

  "Win32_Refrigeration"                 ,

  "Win32_SerialPort"                    ,

  "Win32_SerialPortConfiguration"       ,

  "Win32_SMBIOSMemory"                  ,

  "Win32_SoundDevice"                   ,

  "Win32_SystemEnclosure"               ,

  "Win32_SystemMemoryResource"          ,

  "Win32_SystemSlot"                    ,

  "Win32_TapeDrive"                     ,

  "Win32_TemperatureProbe"              ,

  "Win32_UninterruptiblePowerSupply"    ,

  "Win32_USBController"                 ,

  "Win32_VideoConfiguration"            ,

  "Win32_VideoController"               ,

  "Win32_VoltageProbe"                  ,

相关文章:

  • java 计算器程序_java计算器程序
  • Log4j被OSGI撞了一下腰
  • 比较分析Vector、ArrayList和hashtable hashmap数据结构
  • java二进制类型_Java数据类型 - 原始和二进制文字
  • hibernate的Criteria的一个bug
  • toad导出mysql数据库_将toad里的数据库结构导出到pdm
  • 炒股精髓:多位高手多年心血结晶
  • 好神奇哟
  • java linux 压缩文件夹_Linux下压缩某个文件夹(文件夹打包)
  • java中mapper层作用_Java的MyBatis框架中Mapper映射配置的使用及原理解析
  • java空接口_java中RandomAccess接口明明是个空接口,有什么用呢?
  • java pdf base64_Javaweb中利用pdf.js显示oracle数据库中Base64编码转为的PDF
  • SQL Server 2005豪华盛宴
  • java班级管理系统代码_基于jsp的班级管理系统-JavaEE实现班级管理系统 - java项目源码...
  • java 聚合服务_远程服务接口聚合带来的性能提升
  • 「面试题」如何实现一个圣杯布局?
  • CAP 一致性协议及应用解析
  • JavaScript DOM 10 - 滚动
  • JavaScript-Array类型
  • JavaScript新鲜事·第5期
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • leetcode98. Validate Binary Search Tree
  • Service Worker
  • Vue 动态创建 component
  • vue.js框架原理浅析
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 阿里云应用高可用服务公测发布
  • 从伪并行的 Python 多线程说起
  • 今年的LC3大会没了?
  • 蓝海存储开关机注意事项总结
  • 聊聊directory traversal attack
  • 前端性能优化——回流与重绘
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • Spring Batch JSON 支持
  • 数据库巡检项
  • 昨天1024程序员节,我故意写了个死循环~
  • ​人工智能书单(数学基础篇)
  • ​用户画像从0到100的构建思路
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (Java)【深基9.例1】选举学生会
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (十五)使用Nexus创建Maven私服
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (算法)N皇后问题
  • (原創) 物件導向與老子思想 (OO)
  • (转)mysql使用Navicat 导出和导入数据库
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core 通过 Ef Core 操作 Mysql
  • .Net Core缓存组件(MemoryCache)源码解析
  • .Net MVC + EF搭建学生管理系统
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .Net8 Blazor 尝鲜
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .NET中使用Redis (二)