以下代码出自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" ,
分享到:
相关推荐
开发环境:Visual Studio V2010 .NET Framework 4 Client ...namespace Splash.IO.PORTS{/// <summary>/// 即插即用设备信息结构/// </summary>public struct PnPEntityInfo{public String PNPDeviceID; // 设备I
对于Linux系统,可以使用`lsusb`命令行工具,它会显示连接到系统的所有USB设备的VID和PID。例如: ```bash lsusb ``` 输出会类似这样: ``` Bus 002 Device 004: ID 046d:c05a Logitech, Inc. M105 Optical Mouse...
MSDN中指出Netsh命令将在后续的版本中废止,今后对系统信息的操作将倾向于WMI(Windows管理工具)因此把我工作中用到的模块做了相应的改动,并分享给大家。程序中使用了AlphaControls控件,如要编译运行,可到我的...
这两个标识符是每个USB设备的独特属性,它们分别代表设备制造商的唯一标识和设备的具体型号。 首先,让我们深入理解什么是WMI(Windows Management Instrumentation)。WMI是微软提供的一个系统管理框架,它允许...
然后,它遍历查询结果,提取每个设备的DeviceID,并使用辅助函数`GetVendorID`和`GetProductID`来从DeviceID字符串中提取VID和PID。这些辅助函数通过查找特定的字符串模式来定位并返回ID。 请注意,这个例子假设...
不管是从服务客户角度(难道不允许客户换电脑吗), 还是从代码效率(我看就WMI稳定些, 但是这东西初始化速度很慢), 我觉得都没太大用处 2. 运行环境变化 Win64位环境下, WMI可能还有用, 但需要调整哪里, 我没有去研究,...
输入设备类别 Win32_Keyboard--键盘 Win32_PointingDevice--指示设备(如鼠标) 大容量存储类别 Win32_AutochkSetting--磁盘自动检查操作设置 Win32_CDROMDrive--光盘驱动器 Win32_DiskDrive--硬盘驱动器 ...
5. **解析和处理返回的结果**:对于每个查询结果,我们可以调用IWbemClassObject的方法来获取属性值。例如,`Get`方法用于获取特定属性的值,`Release`方法用于释放内存。 ```delphi var PropertyValue: Variant; ...
标题中的"WMI.rar_delphi wmi_wmi_wmi delphi"表明这是一个关于使用Delphi与WMI交互的源码集合,可能包含了通过Delphi代码调用WMI服务的示例。 描述中的“访问Windows WMI对象的源码,可以使用WMQ语言进行查询”...
接着,遍历Win32_USBControllerDevice类的实例,检查Dependent属性,该属性包含了设备的VID和PID信息。一旦找到含有"VID_"和"PID_"的字符串,就提取并打印出PID和VID。 需要注意的是,`Win32_USBControllerDevice`...
通过学习和分析这个源码,你可以更深入地理解如何在Delphi 7中使用WMI接口来获取和操作系统的管理信息,尤其是关于杀毒软件的状态。在实际应用中,这种技术不仅可以用于获取杀毒软件信息,还可以扩展到监控系统性能...
C++调用WMI来遍历进程,是一种常见的系统监控和管理技术。本篇文章将深入探讨如何使用C++通过WMI实现这一功能。 首先,我们需要理解WMI的基本概念。WMI是基于Microsoft的分布式管理任务组(DMTF)的Common ...
在Delphi中,通过集成的VCL(Visual Component Library)库和Pascal语言,开发者可以轻松地调用WMI接口来获取系统信息。 本资料"Delphi WMI.rar_bios delphi_delphi_delphi wmi_硬件ID码_软件校验码"包含了一系列与...
总的来说,通过C#调用WMI获取系统信息是Windows开发中的一个重要技能,它可以帮助开发者或系统管理员获取详细的系统状态,进行故障排查、性能监控和资源管理。了解并熟练运用这一技术对于提升工作效率和解决问题具有...
在Delphi开发环境中,我们可以利用WMI来实现对操作系统、硬件设备、网络配置等的深度控制。本文将深入探讨Delphi中如何使用WMI,以及“WMI_Introduction”这个日文示例中的关键知识点。 首先,让我们理解WMI的基本...
1. **USB设备枚举**:在Delphi中,你可以通过调用库提供的函数来获取系统中所有可用的USB设备列表。这通常涉及到枚举`Win32_PnPEntity` WMI类,以找到所有USB设备的相关信息,如设备ID、设备描述等。 2. **设备连接...
WMI(Windows Management Instrumentation)是微软Windows操作系统提供的一种管理和操作环境,允许应用程序通过标准接口访问和控制操作系统、硬件设备和服务等系统资源的信息。在Java环境中,若要进行WMI调用,通常...
通过读取这些键值,可以获取设备的 VID (Vendor ID) 和 PID (Product ID),以及其他相关信息。也可以使用WMI(Windows Management Instrumentation)查询来获取USB设备信息。 ```csharp using System.Management;...
Delphi本身不直接提供禁用和启用网络适配器的API,但可以通过调用Windows操作系统提供的API函数来实现。例如,可以使用`SetupDiGetClassDevs`来获取设备信息集,`SetupDiEnumDeviceInfo`遍历设备,`...