Delphi 通过WMI获取U盘硬件特征码


本文整理自网络,侵删。

 
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

相关阅读 >>

Delphi 新建文件 复制文件 重命名文件名时 文件存在自动重命名

Delphi 转换一批.bmp 文件为 .jpg

Delphi 查询当前进程的内存使用大小

Delphi取得trichedit的光标当前位置

Delphi 资源管理器套件

Delphi 字符串保存为 txt文件

Delphi 缩放图形打印输出

Delphi controls 属性与继承 tshape 类的小练习

Delphi inc () 计数用法

Delphi tadocommand 中文使用说明

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...