Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c