基于WMI的信息查询和编辑,按微软的说明一般都是

晕!这个不是很简单的东西吗?
//---------WMI----------
type
  Rec_Wmi = record
    ComputerName: string;
    Namespace: string;
    User: string;
    Password: string;
    WMIType: string;
    Enum: IEnumVariant;
    class function GetWmiEnum(WMIType: string; var AEnum: IEnumVariant; Namespace: string = ‘root\cimv2‘;
      Where: string = ‘‘; ComputerName: string = ‘‘; User: string = ‘‘; Password: string = ‘‘): string; static;
    class function GetWMIProperty(Enum: IEnumVariant; WMIProperty: string; Index: integer = 0): OleVariant; static;
    class function SetWMIProperty(Enum: IEnumVariant; WMIProperty: string; value: string; Index: integer = 0): string; static;
    function GetEnum(Where: string = ‘‘): string;
    function GetProperty(WMIProperty: string; Index: integer = 0): OleVariant;
    function SetProperty(WMIProperty: string; value: string): string;
  end;

{ Rec_Wmi }

function Rec_Wmi.GetEnum(Where: string): string;
begin
  if Self.ComputerName = ‘‘ then Self.ComputerName := ‘.‘;
  if Self.Namespace = ‘‘ then Self.Namespace := ‘root\cimv2‘;
  Result := GetWmiEnum(Self.WMIType, Self.Enum, Self.Namespace, Where, Self.ComputerName, Self.User, Self.Password);
end;

function Rec_Wmi.GetProperty(WMIProperty: string; Index: integer): OleVariant;
begin
  Result := TrueStr;
  if VarIsNull(Self.Enum) then Result := Self.GetEnum;
  if Result <> TrueStr then exit(‘‘);
  Result := Self.GetWMIProperty(Self.Enum, WMIProperty, Index);
end;

class function Rec_Wmi.GetWmiEnum(WMIType: string; var AEnum: IEnumVariant; Namespace, Where, ComputerName, User, Password: string): string;
var
  Wmi, Objs : OleVariant;
  sql: string;
begin
  Result := FalseStr;
  try
    if Where = ‘‘ then sql := ‘Select * from ‘ + WMIType
    else sql := ‘Select * from ‘ + WMIType + ‘ where ‘ + Where;
    if ComputerName = ‘‘ then ComputerName := ‘.‘;
    Wmi := CreateOleObject(‘WbemScripting.SWbemLocator‘);
    if (User <> ‘‘) and (Password <> ‘‘) then Objs := Wmi.ConnectServer(ComputerName, Namespace, User, Password).ExecQuery(sql)
    else Objs := Wmi.ConnectServer(ComputerName, Namespace).ExecQuery(sql);
    if VarIsNull(Objs) then exit(‘未找到 ‘ + WMIType);
    AEnum := IEnumVariant(IUnknown(Objs._NewEnum));
    Result := TrueStr;
  except
    on E: Exception do Result := E.Message;
  end;

end;

class function Rec_Wmi.GetWMIProperty(Enum: IEnumVariant; WMIProperty: string; Index: integer): OleVariant;
var
  obj: OleVariant;
  C: Cardinal;
  i: integer;
  hr: HResult;
begin
  Result := null;
  try
    Enum.Reset;
    i := 0;
    while i <= index do
      begin
        hr := Enum.Next(1, obj, C);
        inc(i);
      end;
    if (hr = S_OK) then Result := obj.Properties_.Item(WMIProperty, 0).value;
  except
    on E: Exception do Result := ‘‘;
  end;
end;

function Rec_Wmi.SetProperty(WMIProperty, value: string): string;
begin
  Result := TrueStr;
  if VarIsNull(Self.Enum) then Result := Self.GetEnum;
  Result := Self.SetWMIProperty(Self.Enum, WMIProperty, value);

end;

class function Rec_Wmi.SetWMIProperty(Enum: IEnumVariant; WMIProperty, value: string; Index: integer): string;
var
  obj: OleVariant;
  C: Cardinal;
  i: integer;
  hr: HResult;
begin
  Result := FalseStr;
  try
    Enum.Reset;
    i := 0;
    while i <= Index do
      begin
        hr := Enum.Next(1, obj, C);
        inc(i);
      end;
    if (hr = S_OK) then
      begin
        obj.Properties_.Item(WMIProperty, 0).value := value;
        obj.Put_;
      end;
    Result := TrueStr;
  except
    on E: Exception do Result := E.Message;
  end;

end;
以上代码都是查阅微软文档后自己写的

测试程序

procedure TForm_Main.Button3Click(Sender: TObject);
var
  Awmi: Rec_Wmi;
  devIndex: integer;
  arrstr: array of string;
  i: integer;
  ov: OleVariant;
begin
  Memo_Info.Lines.Clear;
  if Edit_Device_ID.text = ‘‘ then devIndex := 0
  else devIndex := StrToInt(Edit_Device_ID.text);
  Awmi.ComputerName := Edit_Database.text;
  Awmi.User := Edit_User_Name.text;
  Awmi.Password := Edit_PassWord.text;
  Memo_Info.Lines.Add(‘-----物理设备--------‘);
  Awmi.WMIType := ‘Win32_PhysicalMedia‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum);
  Memo_Info.Lines.Add(‘PhysicalMedia Caption :‘ + vartostr(Awmi.GetProperty(‘Caption‘, devIndex)));
  Memo_Info.Lines.Add(‘PhysicalMedia SerialNumber :‘ + vartostr(Awmi.GetProperty(‘SerialNumber‘, devIndex)));
  Memo_Info.Lines.Add(‘PhysicalMedia Description :‘ + vartostr(Awmi.GetProperty(‘Description‘, devIndex)));
  Memo_Info.Lines.Add(‘PhysicalMedia Name :‘ + vartostr(Awmi.GetProperty(‘Name‘, devIndex)));

  Memo_Info.Lines.Add(‘------物理盘-------‘);
  Awmi.WMIType := ‘Win32_DiskDrive‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum);
  Memo_Info.Lines.Add(‘Win32_DiskDrive PNPDeviceID :‘ + vartostr(Awmi.GetProperty(‘PNPDeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskDrive SerialNumber :‘ + vartostr(Awmi.GetProperty(‘SerialNumber‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskDrive Description :‘ + vartostr(Awmi.GetProperty(‘Description‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskDrive DeviceID :‘ + vartostr(Awmi.GetProperty(‘DeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskDrive Name :‘ + vartostr(Awmi.GetProperty(‘Name‘, devIndex)));
  //  Memo_Info.Lines.Add(‘Win32_DiskDrive CapabilityDescriptions :‘ + Awmi.GetProperty(‘CapabilityDescriptions‘));
  Memo_Info.Lines.Add(‘Win32_DiskDrive MediaType :‘ + vartostr(Awmi.GetProperty(‘MediaType‘, devIndex)));

  Memo_Info.Lines.Add(‘------磁盘分区-------‘);
  Awmi.WMIType := ‘Win32_DiskPartition‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum); //(‘ DeviceID =‘‘Z:‘‘‘));
  Memo_Info.Lines.Add(‘Win32_DiskPartition Caption :‘ + vartostr(Awmi.GetProperty(‘Caption‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskPartition Name :‘ + vartostr(Awmi.GetProperty(‘Name‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskPartition Description :‘ + vartostr(Awmi.GetProperty(‘Description‘)));
  Memo_Info.Lines.Add(‘Win32_DiskPartition DeviceID :‘ + vartostr(Awmi.GetProperty(‘DeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskPartition DiskIndex :‘ + vartostr(Awmi.GetProperty(‘DiskIndex‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskPartition Index :‘ + vartostr(Awmi.GetProperty(‘Index‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskPartition PNPDeviceID :‘ + vartostr(Awmi.GetProperty(‘PNPDeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskPartition Purpose :‘ + vartostr(Awmi.GetProperty(‘Purpose‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskPartition Size :‘ + vartostr(Awmi.GetProperty(‘Size‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_DiskPartition SystemName :‘ + vartostr(Awmi.GetProperty(‘SystemName‘, devIndex)));

  Memo_Info.Lines.Add(‘------逻辑盘-------‘);
  Awmi.WMIType := ‘Win32_LogicalDisk‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum); //(‘ DeviceID =‘‘Z:‘‘‘));
  Memo_Info.Lines.Add(‘Win32_LogicalDisk PNPDeviceID :‘ + vartostr(Awmi.GetProperty(‘PNPDeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_LogicalDisk Size :‘ + vartostr(Awmi.GetProperty(‘Size‘)));
  Memo_Info.Lines.Add(‘Win32_LogicalDisk DeviceID :‘ + vartostr(Awmi.GetProperty(‘DeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_LogicalDisk VolumeName :‘ + vartostr(Awmi.GetProperty(‘VolumeName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_LogicalDisk VolumeSerialNumber :‘ + vartostr(Awmi.GetProperty(‘VolumeSerialNumber‘, devIndex)));

  Memo_Info.Lines.Add(‘-----主板--------‘);
  Awmi.WMIType := ‘Win32_BaseBoard‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum);
  Memo_Info.Lines.Add(‘Win32_BaseBoard SerialNumber :‘ + vartostr(Awmi.GetProperty(‘SerialNumber‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard InstallDate :‘ + vartostr(Awmi.GetProperty(‘InstallDate‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard Product :‘ + vartostr(Awmi.GetProperty(‘Product‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard Manufacturer :‘ + vartostr(Awmi.GetProperty(‘Manufacturer‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard Caption :‘ + vartostr(Awmi.GetProperty(‘Caption‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard CreationClassName :‘ + vartostr(Awmi.GetProperty(‘CreationClassName‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard Model :‘ + vartostr(Awmi.GetProperty(‘Model‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard Name :‘ + vartostr(Awmi.GetProperty(‘Name‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard PartNumber :‘ + vartostr(Awmi.GetProperty(‘PartNumber‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard SlotLayout :‘ + vartostr(Awmi.GetProperty(‘SlotLayout‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard Version :‘ + vartostr(Awmi.GetProperty(‘Version‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard SKU :‘ + vartostr(Awmi.GetProperty(‘SKU‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard OtherIdentifyingInfo :‘ + vartostr(Awmi.GetProperty(‘OtherIdentifyingInfo‘)));
  Memo_Info.Lines.Add(‘Win32_BaseBoard CreationClassName :‘ + vartostr(Awmi.GetProperty(‘CreationClassName‘)));

  Memo_Info.Lines.Add(‘-----BIOS--------‘);
  Awmi.WMIType := ‘Win32_BIOS‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum);
  Memo_Info.Lines.Add(‘Win32_BIOS SerialNumber :‘ + vartostr(Awmi.GetProperty(‘SerialNumber‘)));
  Memo_Info.Lines.Add(‘Win32_BIOS TargetOperatingSystem :‘ + vartostr(vartostr(Awmi.GetProperty(‘TargetOperatingSystem‘))));
  Memo_Info.Lines.Add(‘Win32_BIOS Manufacturer :‘ + vartostr(Awmi.GetProperty(‘Manufacturer‘)));
  Memo_Info.Lines.Add(‘Win32_BIOS BuildNumber :‘ + vartostr(Awmi.GetProperty(‘BuildNumber‘)));
  Memo_Info.Lines.Add(‘Win32_BIOS InstallDate :‘ + vartostr(Awmi.GetProperty(‘InstallDate‘)));
  Memo_Info.Lines.Add(‘Win32_BIOS ReleaseDate :‘ + vartostr(Awmi.GetProperty(‘ReleaseDate‘)));
  Memo_Info.Lines.Add(‘Win32_BIOS Version :‘ + vartostr(Awmi.GetProperty(‘Version‘)));
  Memo_Info.Lines.Add(‘Win32_BIOS CodeSet :‘ + vartostr(Awmi.GetProperty(‘CodeSet‘)));
  Memo_Info.Lines.Add(‘Win32_BIOS BIOSVersion :‘);
  ov := Awmi.GetProperty(‘CodeSet‘);
  if not VarIsNull(ov) then
    begin
      if VarIsArray(ov) then
        begin
          for i := VarArrayLowBound(ov, 1) to VarArrayHighBound(ov, 1) do
          begin
          Memo_Info.Lines.Add(vartostr(VarArrayGet(ov, [i])));
          end;
        end
    end;

  Memo_Info.Lines.Add(‘-----网卡--------‘);
  Awmi.WMIType := ‘Win32_NetworkAdapter‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum(‘AdapterTypeID=0‘));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter AdapterType :‘ + vartostr(Awmi.GetProperty(‘AdapterType‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter name :‘ + vartostr(Awmi.GetProperty(‘name‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter MACAddress :‘ + vartostr(Awmi.GetProperty(‘MACAddress‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter Caption :‘ + vartostr(Awmi.GetProperty(‘Caption‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter DeviceID :‘ + vartostr(Awmi.GetProperty(‘DeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter Description :‘ + vartostr(Awmi.GetProperty(‘Description‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter GUID :‘ + vartostr(Awmi.GetProperty(‘GUID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter Index :‘ + vartostr(Awmi.GetProperty(‘Index‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter InterfaceIndex :‘ + vartostr(Awmi.GetProperty(‘InterfaceIndex‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter Manufacturer :‘ + vartostr(Awmi.GetProperty(‘Manufacturer‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter MaxSpeed :‘ + vartostr(vartostr(Awmi.GetProperty(‘MaxSpeed‘, devIndex))));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter Speed :‘ + vartostr(Awmi.GetProperty(‘Speed‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter NetConnectionStatus :‘ + vartostr(Awmi.GetProperty(‘NetConnectionStatus‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter PNPDeviceID :‘ + vartostr(Awmi.GetProperty(‘PNPDeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter ProductName :‘ + vartostr(Awmi.GetProperty(‘ProductName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter ServiceName :‘ + vartostr(Awmi.GetProperty(‘ServiceName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter SystemName :‘ + vartostr(Awmi.GetProperty(‘SystemName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter PermanentAddress :‘ + vartostr(Awmi.GetProperty(‘PermanentAddress‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapter NetworkAddresses :‘);
  ov := Awmi.GetProperty(‘NetworkAddresses‘, devIndex);
  if not VarIsNull(ov) then
    begin
      if VarIsArray(ov) then
        begin
          for i := VarArrayLowBound(ov, 1) to VarArrayHighBound(ov, 1) do
          begin
          Memo_Info.Lines.Add(vartostr(VarArrayGet(ov, [i])));
          end;
        end
    end;
  Memo_Info.Lines.Add(‘-----网卡设置--------‘);
  Awmi.WMIType := ‘Win32_NetworkAdapterConfiguration‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum(‘IPEnabled=True‘));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration Properties :‘ + vartostr(Awmi.GetProperty(‘Properties‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration Caption :‘ + vartostr(Awmi.GetProperty(‘Caption‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration Description :‘ + vartostr(Awmi.GetProperty(‘Description‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration DNSDomain :‘ + vartostr(Awmi.GetProperty(‘DNSDomain‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration DNSHostName :‘ + vartostr(Awmi.GetProperty(‘DNSHostName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration Index :‘ + vartostr(Awmi.GetProperty(‘Index‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration InterfaceIndex :‘ + vartostr(Awmi.GetProperty(‘InterfaceIndex‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration MACAddress :‘ + vartostr(Awmi.GetProperty(‘MACAddress‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration ServiceName :‘ + vartostr(Awmi.GetProperty(‘ServiceName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration DefaultIPGateway :‘);
  ov := Awmi.GetProperty(‘DefaultIPGateway‘, devIndex);
  if not VarIsNull(ov) then
    begin
      if VarIsArray(ov) then
        begin
          for i := VarArrayLowBound(ov, 1) to VarArrayHighBound(ov, 1) do
          begin
          Memo_Info.Lines.Add(vartostr(VarArrayGet(ov, [i])));
          end;
        end
    end;

  Memo_Info.Lines.Add(‘Win32_NetworkAdapterConfiguration IPAddress :‘);
  ov := (Awmi.GetProperty(‘IPAddress‘, devIndex));
  if not VarIsNull(ov) then
    begin
      if VarIsArray(ov) then
        begin
          for i := VarArrayLowBound(ov, 1) to VarArrayHighBound(ov, 1) do
          begin
          Memo_Info.Lines.Add(vartostr(VarArrayGet(ov, [i])));
          end;
        end
    end;

  Memo_Info.Lines.Add(‘-----CPU--------‘);
  Awmi.WMIType := ‘Win32_Processor‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum); //(‘IPEnabled=True‘));
  Memo_Info.Lines.Add(‘Win32_Processor ProcessorId :‘ + vartostr(Awmi.GetProperty(‘ProcessorId‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor SerialNumber :‘ + vartostr(Awmi.GetProperty(‘SerialNumber‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor Version :‘ + vartostr(Awmi.GetProperty(‘Version‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor UniqueId :‘ + vartostr(Awmi.GetProperty(‘UniqueId‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor SystemName :‘ + vartostr(Awmi.GetProperty(‘SystemName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor Name :‘ + vartostr(Awmi.GetProperty(‘Name‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor Description :‘ + vartostr(Awmi.GetProperty(‘Description‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor Caption :‘ + vartostr(Awmi.GetProperty(‘Caption‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor DeviceID :‘ + vartostr(Awmi.GetProperty(‘DeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor CreationClassName :‘ + vartostr(Awmi.GetProperty(‘CreationClassName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor Manufacturer :‘ + vartostr(Awmi.GetProperty(‘Manufacturer‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor NumberOfCores :‘ + vartostr(Awmi.GetProperty(‘NumberOfCores‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_Processor ThreadCount :‘ + vartostr(Awmi.GetProperty(‘ThreadCount‘, devIndex)));

  Memo_Info.Lines.Add(‘-----显卡-------‘);
  Awmi.WMIType := ‘Win32_VideoController‘;
  Memo_Info.Lines.Add(‘GetEnum:‘ + Awmi.GetEnum); //(‘IPEnabled=True‘));
  Memo_Info.Lines.Add(‘Win32_VideoController name :‘ + vartostr(Awmi.GetProperty(‘name‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController Description :‘ + vartostr(Awmi.GetProperty(‘Description‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController Caption :‘ + vartostr(Awmi.GetProperty(‘Caption‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController DeviceID :‘ + vartostr(Awmi.GetProperty(‘DeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController CreationClassName :‘ + vartostr(Awmi.GetProperty(‘CreationClassName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController PNPDeviceID :‘ + vartostr(Awmi.GetProperty(‘PNPDeviceID‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController SystemName :‘ + vartostr(Awmi.GetProperty(‘SystemName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController VideoModeDescription :‘ + vartostr(Awmi.GetProperty(‘VideoModeDescription‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController VideoProcessor :‘ + vartostr(Awmi.GetProperty(‘VideoProcessor‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController SystemCreationClassName :‘ + vartostr(Awmi.GetProperty(‘SystemCreationClassName‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController AdapterCompatibility :‘ + vartostr(Awmi.GetProperty(‘AdapterCompatibility‘, devIndex)));
  Memo_Info.Lines.Add(‘Win32_VideoController AdapterDACType :‘ + vartostr(Awmi.GetProperty(‘AdapterDACType‘, devIndex)));

end;
基于WMI的信息查询和编辑,按微软的说明一般都是
Requirements
Minimum supported client  Windows Vista
Minimum supported server  Windows Server 2008
Namespace  Root\CIMV2
MOF  CIMWin32.mof
DLL  CIMWin32.dll

操作系统能读到的信息,都能读到.内容丰富的撑到爆.在windows域环境下,wmi是可以查看域内任意计算机信息的,不限于本机,当然需要你有相应域权限.
具体可msdn.microsoft.com搜索
比如磁盘的:
https://msdn.microsoft.com/en-us/library/aa394132%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
操作系统的:
https://msdn.microsoft.com/en-us/library/dn792258(v=vs.85).aspx
基本上windows整个体系方方面面统统可以用此方法读取和操作.这也是微软未来的方向,以前的单个api系统会慢慢被wmi统一掉.
当然XP对很多wmi不支持,Windows Vista 则几乎都没问题
时间: 2024-11-19 10:06:08

基于WMI的信息查询和编辑,按微软的说明一般都是的相关文章

Web信息查询平台

每天记录学习,每天会有好心情.*^_^* 今天记录的项目是基于Web的信息查询平台,采用当前非常流行的B/S体系结构,以JSP作为开发技术,主要依赖SSM技术框架,mysql数据库建立本系统.做基于Web的信息查询平台的时候,我们需要用到SSM(MYECLIPSE)框架,开发工具选用最拿手的MYECLIPSE.基于Web的信息查询平台项目是一个 后台项目.开发系统时,需求分析是必不可少的一个环节.基于Web的信息查询平台拥有的登录角色包括了管理员.用户.每个账号设置身份.账号.密码是必不可少的,

C#:基于WMI查询USB设备

来源:http://blog.csdn.net/jhqin/article/details/6734673 /* ---------------------------------------------------------- 文件名称:WMIUsbQuery.cs 作者:秦建辉 MSN:[email protected] QQ:36748897 博客:http://blog.csdn.net/jhqin 开发环境: Visual Studio V2010 .NET Framework 4

教室实时信息查询系统 项目需求规格说明书

  教室实时信息查询系统 项目需求规格说明书 参与人:尹伟 吴文斌 东华理工大学 2015年10月31日 目    录 1.            文档说明... - 1 - 1.1编写目的... - 1 - 1.2背景... - 1 - 1.3适用范围... - 1 - 1.4预期读者与阅读建议... - 2 - 1.5参考文献... - 2 - 1.6术语与缩写解释... - 2 - 1.6.1术语... - 2 - 1.6.2缩写... - 3 - 2.       系统说明... - 4

全网、全国最好用的基于经纬度的天气查询、天气预报接口

大家好,我们是中国科学院资源与环境信息系统国家重点实验室的人员(学生).在软件开发过程中,我们发现,传统获取天气信息的接口大多是基于所谓的天气码,数据源大多来自中国国家气象局:随着移动互联网的快速发展,大家都希望通过经纬度查询天气信息. 最开始我们搜寻全网,发现谷歌提供了利用经纬度获取天气信息的接口,然而一测试发现,由于“你懂的”原因,它已经无法使用了.国内IT三哥——百度貌似也提供了这么一个接口,但是又是需要神马key啊,验证文件啊等等一堆手续:而且它还限制每天的单个IP的访问次数,更让人讨厌

05.HTTP编程实战:高校信息查询平台之登录模块

转载请标明出处:http://blog.csdn.net/u012637501 在了解了Android的HTTP应用编程相关知识后,我们通过一个实例来进一步深化基于HTTP协议的Android客户端应用的开发,即模拟高效信息查询平台实例.该APP应用作为高校信息查询客户端,可以完成用户的注册.登录,信息查询.资料的下载与上传等功能,整体开发流程图如下: 基础知识: ①HTTP协议介绍: http://blog.csdn.net/u012637501/article/details/4514906

nagios数据库 主机相关信息查询

mysql> select a.host_object_id,a.display_name,a.address,b.hostgroup_id,b.alias from nagios_hosts a,nagios_hostgroups b,nagios_hostgroup_members c where c.host_object_id=a.host_object_id and c.hostgroup_id=b.hostgroup_id order by b.hostgroup_id;+-----

基于py3和pymysql查询某时间段的数据

#python3 #xiaodeng #基于py3和pymysql查询某时间段的数据 import pymysql conn=pymysql.connect(user='root',passwd='root',host='localhost',db='test.db') cur=conn.cursor() '''[核心语句]''' cur.execute("select grage from 表名 where 时间字段 between '开始时间' and '结束时间'") #eg:

团队项目选题——地铁信息查询

项目选题:地铁信息查询 [问题描述] 当今的北京,地铁已经成为绝大多数人出行的首选.截至2014年1月,北京地铁共有17条运营线路.组成覆盖北京市11个市辖区,拥有231座运营车站.总长467千米运营线路的轨道交通系统,工作日均客流约1000万人次,峰值日客运量1155.92万人次.目前,北京地铁票价由原来的2元通票变为浮动票价,具体的票价计算方式见下表: 表 1 地铁票价计算表 里程(公里) 票价(元) 0~6 3 6~12 4 12~22 5 22~32 6 32~52 7 52~72 8

Linux硬件信息查询命令

系统 uname -a              # 查看内核/操作系统/CPU信息 Linux hostname 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux head -n 1 /etc/issue      # 查看操作系统版本 Red Hat Enterprise Linux Server release 5.3 (Tikanga) cat /proc/cpuinfo