Показать сообщение отдельно
  #2  
Старый 11.01.2014, 15:25
cezer cezer вне форума
Прохожий
 
Регистрация: 01.06.2012
Сообщения: 44
Репутация: 10
По умолчанию

Сам спросил.Сам отвечаю:

Код:
procedure  GetWMI;
var
  FSWbemLocator : OLEVariant;
  FWMIService   : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject   : OLEVariant;
  oEnum         : IEnumvariant;
  iValue        : LongWord;
begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService   := FSWbemLocator.ConnectServer('.', 'root\CIMV2', '', '');
  FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_Share','WQL',$00000020);
  oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    Form1.memo2.lines.add(Format('Caption        %s',[String(FWbemObject.Caption)]));// String
    Form1.memo2.lines.add(Format('Description    %s',[String(FWbemObject.Description)]));// String
    Form1.memo2.lines.add(Format('Name           %s',[String(FWbemObject.Name)]));// String
    Form1.memo2.lines.add(Format('Path           %s',[String(FWbemObject.Path)]));// String

    Form1.memo2.lines.add('***');
    FWbemObject:=Unassigned;
  end;
end;


procedure TForm1.Button9Click(Sender: TObject);
begin
 try
    CoInitialize(nil);
    try
      GetWMI;
    finally
      CoUninitialize;
    end;
 except
    on E:EOleException do
        Form1.memo1.lines.add(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
    on E:Exception do
        Form1.memo1.lines.add(E.Classname, ':', E.Message);
 end;

 end;
Ответить с цитированием