DELPHI利用WMI获取主板参数
procedure TFrmMain.RzGroup1Items1Click(Sender: TObject);
begin
Memo1.Clear;
Memo1.Lines.Add('【主板参数信息】');
Memo1.Lines.Add('');
Memo1.Lines.Add('BIOS序列号: '+GetWMIProperty('BIOS','SerialNumber'));
Memo1.Lines.Add('BIOS版本号: '+GetWMIProperty('BIOS','SMBIOSMajorVersion'));
Memo1.Lines.Add('BIOS制造商: '+GetWMIProperty('BIOS','Manufacturer'));
Memo1.Lines.Add('出厂日期: '+GetWMIProperty('Bios','ReleaseDate'));
end;
公共函数
function GetWMIProperty(WMIType, WMIProperty:AnsiString):String;
var
Wmi, Objs, Obj: oleVariant;
Enum: IEnumVariant;
C: Cardinal;
begin
Wmi:= CreateOleObject('WbemScripting.SWbemLocator');
Objs := Wmi.ConnectServer('.','root/cimv2').ExecQuery('Select * from Win32_' + WMIType);
Enum := IEnumVariant(IUnknown(Objs._NewEnum));
Enum.Reset;
Enum.Next(1,Obj,C);
Obj := Obj.Properties_.Item(WMIProperty, 0).Value;
if VarIsNull(obj) then
begin
Result:='Error';
end;
if VarIsArray(obj) then
begin
Result := Obj[0];
end;
if VarIsStr(obj) or VarIsCustom(obj) or VarIsFloat(obj) or VarIsNumeric(obj) or VarIsOrdinal(obj) then
begin
Result:= Obj;
end;
end;
WMI-Win32_baseboard 主板参数
Caption --简述
ConfigOptions --数组,表示位于在底板上跳线和开关的配置。
CreationClassName --表示类的名称(就是Win32_baseboard类)
Depth --以英寸为单位的物理封装。
Description --对象的描述(底板)
Height --用英寸表示的物理包的高度
HostingBoard --如果为TRUE,该卡是一个主板,或在一个机箱中的基板。
HotSwappable --如果为TRUE,就是支持热插拔(判断是否支持热插拔)
InstallDate --日期和时间对象安装。此属性不需要的值以表示已安装的对象。
Manufacturer --表示制造商的名称
Model --物理元素的名称是已知。
Name --对象的名称标签
OtherIdentifyingInfo --捕获附加数据,超出资产标签的信息,可以用来标识物理元件
PartNumber --由负责生产或制造的物理元素的组织分配部件编号。
PoweredOn --如果为真,物理元素处于开机状态。
Product --产品的型号
Removable --判断是否可拆卸的
Replaceable --判断是否可更换的
RequirementsDescription --自由格式字符串描述方式,这张卡是身体不同于其他卡。该属性才有意义时,相对应的布尔值属性特殊要求是集真的
RequiresDaughterBoard --如果是TRUE,至少一个子板或辅助卡才能正常工作。
SerialNumber --制造商分配的用于识别所述物理元件数目。
SKU --库存的物理单元号。
SlotLayout --描述插槽位置
SpecialRequirements --如果为真,此卡是同类型的其他卡物理上唯一的,因此需要一个专门的插槽
Status --对象的当前状态。
Tag --符系统的基板唯一标识
Version --物理元素的版本
Weight --物理元素的重量英镑表示
Width --用英寸表示的物理元素的宽度