Показать сообщение отдельно
  #4  
Старый 07.05.2013, 13:35
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

полностью рабочий кусок из Просмотрщик Windows Management Instrumentation (WMI) Win32 классов:

Код:
var
  objLocator: Variant;
  objServices: Variant;
  objObjectSet: Variant;

  EnumSet: IEnumVariant;
  SetVar: OleVariant;
  Fetched: LongWord;

  EnumProp: IEnumVariant;
  PropVar: OleVariant;

  ListItem: TListItem;
begin
  ListView.Items.BeginUpdate;
  try
    objLocator:=CreateOleObject('WbemScripting.SWbemLocator');
    objServices:=objLocator.ConnectServer('', 'root\CIMV2');
    objObjectSet:=objServices.ExecQuery('select * from Win32_Processor');
    EnumSet:=IUnknown(objObjectSet._NewEnum) as IEnumVariant;
    while EnumSet.Next(1, SetVar, Fetched)=S_OK do
    begin
      EnumProp:=IUnknown((IUnknown(SetVar) as ISWbemObject).Properties_._NewEnum) as IEnumVariant;
      while EnumProp.Next(1, PropVar, Fetched)=S_OK do
      begin
        ListItem:=ListView.Items.Add;
        ListItem.Caption:=(IUnknown(PropVar) as ISWbemProperty).Name;
        ListItem.SubItems.Add(VarToStr((IUnknown(PropVar) as ISWbemProperty).Get_Value));
      end;
    end;
  finally
    ListView.Items.EndUpdate;
  end;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием