unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls,ActiveX, ComObj, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{
Private declarations
}
public
{
Public declarations
}
end;
var
Form1: TForm1;
implementation
{
$R *.dfm
}
procedure TForm1.Button1Click(Sender: TObject);
var
Locator:OleVariant;
WMI:OleVariant;
RET:OleVariant;
Enum:IEnumVariant;
Tmp:OleVariant;
Value:Cardinal;
begin
Locator:=CreateOleObject('WbemScriptingSWbemLocator');
WMI := Locator.ConnectServer('.', '', '', '');
Ret := WMI.ExecQuery('SELECT * FROM Win32_USBHub');//这里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;
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