Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

VBS -> Delphi   Найти похожие ветки 

 
qwerr   (2005-03-01 16:47) [0]

Это на VBS  
For Each objProcess in colProcessList
   
Next

Как это должно выглядеть в Делфи ? Как сделать для какждого ?


 
MU   (2005-03-01 16:50) [1]

что-то такое...
for i := 0 to colProcessList.Count - 1 do
begin
 objProcess := colProcessList.Items[i];
 //....
end;


 
qwerr   (2005-03-01 16:55) [2]

Дело в том что метода items нет, вываливается ошибка !!

только один Count  показывает количество и всё  (((

какие есть ещё варианты ?


 
MU   (2005-03-01 16:57) [3]

а colProcessList - это кто? экземпляр какого класса?
colProcessList. и Ctrl+Space - там, может, будет что нужное?


 
qwerr   (2005-03-01 17:02) [4]

procedure TForm1.Button1Click(Sender: TObject);
var objSWbemLocator, List, List2,list3 : Variant;
 i: integer;
begin
objSWbemLocator := CreateOleObject("WbemScripting.SWbemLocator");
if not (TVarData(objSWbemLocator).VType = varEmpty)
   then ShowMessage("OK");
   list:= objSWbemLocator.ConnectServer("dm-dubrovin");
   list2:= list.ExecQuery("SELECT * FROM Win32_Process WHERE ProcessID = 2380");
   i:= list2.Count;
   ShowMessage(IntToStr(i));
   for i := 0 to list2.Count - 1 do
     begin
      list3 := list2.Items[i];
      ShowMessage(List3.Name) ;
      //....
     end;

end;


 
MU   (2005-03-01 17:08) [5]

попробуй  
 for i := 1 to list2.Count do
    ....
   list3 := list2.Items[i];
   или
   list3 := list2[i];


 
qwerr   (2005-03-01 17:08) [6]

так что есть какие варианты ?


 
qwerr   (2005-03-01 17:10) [7]

да он на сам метод ITEMS ругается, типа такого нет !


 
MU   (2005-03-01 17:12) [8]

var objSWbemLocator, List, List2,list3 : OleVariant;


 
MU   (2005-03-01 17:13) [9]

list3 := list2[i]; ???


 
qwerr   (2005-03-01 17:14) [10]

то же самое (((
поробуй запусти у себя !!!
я уже даже не знаю что делать , а что делать ))) ????


 
qwerr   (2005-03-01 17:23) [11]

может мне кто нить помочь ?


 
MU   (2005-03-01 17:51) [12]

list3 := list2.Item(i);
Но у меня дает "Общая ошибка"
а у вас?


 
qwerr   (2005-03-01 17:56) [13]

list3 := list2.Item(i);   ---  Общая ошибка !

list3 := list2.Item[i];   ---  Ошибка "Член группы не найден"


 
DiamondShark ©   (2005-03-01 17:56) [14]

Должен быть метод аналог Items[], бо не все языки поддерживают VB-шные коллекции. Смотри доку по этому объекту.

Ну а VB-коллекция устроена так:

type
 ICollectionDisp = dispinterface
   ["{00020400-0000-0000-C000-000000000046}"]
   property NewEnum: IEnumVARIANT dispid DISPID_NEWENUM;
 end;

procedure TForm1.Button1Click(Sender: TObject);
var objSWbemLocator, List, List2,list3 : Variant;
enm: IEnumVARIANT;
item: OleVariant;
Dummy: Cardinal;
begin
objSWbemLocator := CreateOleObject("WbemScripting.SWbemLocator");
if not (TVarData(objSWbemLocator).VType = varEmpty)
  then ShowMessage("OK");
  list:= objSWbemLocator.ConnectServer("dm-dubrovin");
  list2:= list.ExecQuery("SELECT * FROM Win32_Process WHERE ProcessID = 2380");
enm := ICollectionDisp(IDispatch(list2)).NewEnum;
 item := Unassigned;
 while enm.Next(1, item, Dummy) = S_OK do
 begin
   // чего-то делаем с item
   item := Unassigned;
 end;

end;


 
qwerr   (2005-03-01 18:15) [15]

IEnumVARIANT - что это за объект ?


 
DiamondShark ©   (2005-03-01 18:29) [16]


> qwerr   (01.03.05 18:15) [15]
> IEnumVARIANT - что это за объект ?

Это не объект, это интерфейс.
Описан в модуле ActiveX.
Документированый интерфейс, реализуемый объектами-коллекциями.


 
qwerr   (2005-03-01 18:38) [17]

Спасибо !!! Все получилось ))) с меня пиво !



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
14-1109082292
ParaSenok
2005-02-22 17:24
2005.03.13
Чат


14-1108710940
Алексей#13
2005-02-18 10:15
2005.03.13
Имеем ли мы право?


14-1109166287
Antonn
2005-02-23 16:44
2005.03.13
Как создать свой шрифт (*.ttf) ?


1-1109412325
webpauk
2005-02-26 13:05
2005.03.13
Определение имени переменной


1-1109427972
-_-
2005-02-26 17:26
2005.03.13
Проблема с Delphi 2005 Architect