WMI Delphi
От: lka_76  
Дата: 24.05.06 09:17
Оценка:
Добрый день!
пытаюсь научиться работать с WMI на Delphi.
столкнулся с проблемами:
нашел много инструкци, примеров по этой теме но:
>> Для начала импортируйте библиотеку типов (wmi начиная с NT4SP4 встроен в систему)
>> 1.Active DS Type Library ---- нет у меня такого имею WIN 2K как называется dll/ocx??
>> 2.Microsoft WMI Scripting v1.1 Library
>> используйтте TSWbemLocator
советуют установить WMIcore но он только для NT4
соответсвенно не могу ни как с этим рабоатать где только не пыался найти....
большенство ссылок 2004года и не рабочии..
не помню где нашел
const STGM_default =STGM_READWRITE + STGM_SHARE_EXCLUSIVE;
      STGM_BASE    =STGM_READ + STGM_SHARE_EXCLUSIVE;

function getobject(const name:string;accs:dword=STGM_default):variant;
var err:HResult;
  bo:tBINDOPTS;
  res:IDispatch;
  nm:widestring;
begin nm := name; fillchar(bo,sizeof(bo),0);
    with bo do begin cbStruct := sizeof(bo);
      grfFlags := BIND_MAYBOTHERUSER;
      grfMode := accs;
    end;
err:=CoGetObject(  @nm[1] , @bo , IDispatch , @res );
OleCheck(err);
result:=res;
end;

procedure TForm1.Button1Click(Sender: TObject);
var q1,Boards,q3:variant;

begin
  q1:=getobject('winmgmts:{impersonationLevel=impersonate}!//.\root\cimv2');
  Bouards:=q1.ExecQuery('select * from Win32_BaseBoard', , 48);
end;

отрабатывает без проблем.. вот только не знаю что делать дальше...
в VB там дальше
 For Each Board In Boards
но тогда как это реализовать на Delphi??
здесь на форуме находил похожие темы, но они тоже "старые" и не понятно как была решена проблема...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.