`

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"                  ,
分享到:
评论

相关推荐

    c#使用wmi查询usb设备信息示例

    开发环境:Visual Studio V2010 .NET Framework 4 Client ...namespace Splash.IO.PORTS{/// <summary>/// 即插即用设备信息结构/// </summary>public struct PnPEntityInfo{public String PNPDeviceID; // 设备I

    获取当前电脑所有插入USB设备的PID和VID

    对于Linux系统,可以使用`lsusb`命令行工具,它会显示连接到系统的所有USB设备的VID和PID。例如: ```bash lsusb ``` 输出会类似这样: ``` Bus 002 Device 004: ID 046d:c05a Logitech, Inc. M105 Optical Mouse...

    Delphi 使用WMI读取网卡信息及设置IP地址

    MSDN中指出Netsh命令将在后续的版本中废止,今后对系统信息的操作将倾向于WMI(Windows管理工具)因此把我工作中用到的模块做了相应的改动,并分享给大家。程序中使用了AlphaControls控件,如要编译运行,可到我的...

    C#获取外接USB设备信息,包括VID,PID

    这两个标识符是每个USB设备的独特属性,它们分别代表设备制造商的唯一标识和设备的具体型号。 首先,让我们深入理解什么是WMI(Windows Management Instrumentation)。WMI是微软提供的一个系统管理框架,它允许...

    vb.net查询所有的USB设备(获ID,PID,VID等信息)

    然后,它遍历查询结果,提取每个设备的DeviceID,并使用辅助函数`GetVendorID`和`GetProductID`来从DeviceID字符串中提取VID和PID。这些辅助函数通过查找特定的字符串模式来定位并返回ID。 请注意,这个例子假设...

    Delphi通过WMI等方法获取硬件ID源码

    不管是从服务客户角度(难道不允许客户换电脑吗), 还是从代码效率(我看就WMI稳定些, 但是这东西初始化速度很慢), 我觉得都没太大用处 2. 运行环境变化 Win64位环境下, WMI可能还有用, 但需要调整哪里, 我没有去研究,...

    Delphi 操作WMI的类

    输入设备类别 Win32_Keyboard--键盘  Win32_PointingDevice--指示设备(如鼠标)  大容量存储类别 Win32_AutochkSetting--磁盘自动检查操作设置  Win32_CDROMDrive--光盘驱动器  Win32_DiskDrive--硬盘驱动器  ...

    delphi操作WMI获取大量系统信息的例子

    5. **解析和处理返回的结果**:对于每个查询结果,我们可以调用IWbemClassObject的方法来获取属性值。例如,`Get`方法用于获取特定属性的值,`Release`方法用于释放内存。 ```delphi var PropertyValue: Variant; ...

    WMI.rar_delphi wmi_wmi_wmi delphi

    标题中的"WMI.rar_delphi wmi_wmi_wmi delphi"表明这是一个关于使用Delphi与WMI交互的源码集合,可能包含了通过Delphi代码调用WMI服务的示例。 描述中的“访问Windows WMI对象的源码,可以使用WMQ语言进行查询”...

    使用Python在Windows下获取USB PID&VID的方法

    接着,遍历Win32_USBControllerDevice类的实例,检查Dependent属性,该属性包含了设备的VID和PID信息。一旦找到含有"VID_"和"PID_"的字符串,就提取并打印出PID和VID。 需要注意的是,`Win32_USBControllerDevice`...

    delphi7中WMI接口应用

    通过学习和分析这个源码,你可以更深入地理解如何在Delphi 7中使用WMI接口来获取和操作系统的管理信息,尤其是关于杀毒软件的状态。在实际应用中,这种技术不仅可以用于获取杀毒软件信息,还可以扩展到监控系统性能...

    C++调用WMI遍历进程

    C++调用WMI来遍历进程,是一种常见的系统监控和管理技术。本篇文章将深入探讨如何使用C++通过WMI实现这一功能。 首先,我们需要理解WMI的基本概念。WMI是基于Microsoft的分布式管理任务组(DMTF)的Common ...

    Delphi WMI.rar_bios delphi_delphi_delphi wmi_硬件ID码_软件校验码

    在Delphi中,通过集成的VCL(Visual Component Library)库和Pascal语言,开发者可以轻松地调用WMI接口来获取系统信息。 本资料"Delphi WMI.rar_bios delphi_delphi_delphi wmi_硬件ID码_软件校验码"包含了一系列与...

    C# 调用WMI 获取系统信息

    总的来说,通过C#调用WMI获取系统信息是Windows开发中的一个重要技能,它可以帮助开发者或系统管理员获取详细的系统状态,进行故障排查、性能监控和资源管理。了解并熟练运用这一技术对于提升工作效率和解决问题具有...

    WMI_Introduction.rar_carbon91i_deerc8x_delphi WMI使用_delphi wmi

    在Delphi开发环境中,我们可以利用WMI来实现对操作系统、硬件设备、网络配置等的深度控制。本文将深入探讨Delphi中如何使用WMI,以及“WMI_Introduction”这个日文示例中的关键知识点。 首先,让我们理解WMI的基本...

    usb_src.rar_Delphi-USB_Delphi_USB_delphi_usb control delphi

    1. **USB设备枚举**:在Delphi中,你可以通过调用库提供的函数来获取系统中所有可用的USB设备列表。这通常涉及到枚举`Win32_PnPEntity` WMI类,以找到所有USB设备的相关信息,如设备ID、设备描述等。 2. **设备连接...

    wmi纯java调用所需jar包.zip

    WMI(Windows Management Instrumentation)是微软Windows操作系统提供的一种管理和操作环境,允许应用程序通过标准接口访问和控制操作系统、硬件设备和服务等系统资源的信息。在Java环境中,若要进行WMI调用,通常...

    C#版USB通信编程(接收和发送数据)

    通过读取这些键值,可以获取设备的 VID (Vendor ID) 和 PID (Product ID),以及其他相关信息。也可以使用WMI(Windows Management Instrumentation)查询来获取USB设备信息。 ```csharp using System.Management;...

    Delphi实现禁用和启用网卡

    Delphi本身不直接提供禁用和启用网络适配器的API,但可以通过调用Windows操作系统提供的API函数来实现。例如,可以使用`SetupDiGetClassDevs`来获取设备信息集,`SetupDiEnumDeviceInfo`遍历设备,`...

Global site tag (gtag.js) - Google Analytics