Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.01.2014, 13:56
cezer cezer вне форума
Прохожий
 
Регистрация: 01.06.2012
Сообщения: 44
Репутация: 10
По умолчанию WMI перебор значений

Добрый день ув. Программисты.

Имеется код:

Код:
procedure GetWMI(wmi,par:string);
var
locator : ISWbemLocator;
objectSet : ISWbemObjectSet;
obj : ISWbemObject;
sl,pl : TStringList;
i,j:integer;
wmiClass, selectList : string;
propName : string;
propValue : string;
varProp : oleVariant;
intVal : cardinal;
varEnum : IEnumVariant;
varObj : oleVariant;
fetched : cardinal;
begin
locator := CoSWbemLocator.Create();
form1.services := locator.ConnectServer('.','root\cimv2','','','','',0,nil);
locator := nil; 
sl := TStringList.Create;
pl := TStringList.Create;
sl.Values[wmi] := par;
 
    for i:=0 to sl.Count - 1 do begin
        wmiClass  := sl.Names[i];
        selectList := sl.ValueFromIndex[i];
        pl.CommaText := selectList;
        objectSet :=Form1.services.ExecQuery('select '+ selectList + ' from ' + wmiClass,'WQL',
                                   wbemFlagReturnImmediately and wbemFlagForwardOnly,nil);
 
varEnum := objectSet._NewEnum as IEnumVariant;
varEnum.Next(1,varObj,fetched);
obj := IUnknown(varObj) as ISWbemObject;
 
    for j := 0 to pl.count -1 do begin
        propName := pl[j];
        varProp := obj.Properties_.Item(propName,0);
            if not varIsNull(varProp) then
            propValue := varToStr(varProp)
            else propValue := '';         
            form1.memo1.Lines.Add(propName+' | '+propValue);
        end;
    end;
 
form1.memo1.Lines.Add('===========================');
sl.Free;
pl.Free;
end;

Значения передаю так:

Код:
procedure TForm1.Button9Click(Sender: TObject);
begin
  GetWMI('Win32_Share','Caption, Name, Path');
end;

Проблема в том что он выводит не все расшаренные папки. Если смотреть через консоль WMI то там их более 5и.

В консоле WMI, первая папка это:

Caption | Удаленный Admin
Name | ADMIN$
Path | C:\Windows

Эту первую папку он мне выводит в memo, а дальше никак.

Перебор значений есть. но по чему то добавляет только одну(

В чем причина?
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:05.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025