
07.05.2013, 13:35
|
 |
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;
__________________
Пишу программы за еду.
__________________
|