Войти

Показать полную графическую версию : SWbemObjectSet


newbas
31-10-2008, 10:51
http://msdn.microsoft.com/en-us/library/aa826600(VS.85).aspx?ppud=4
Собственно нуна выбрать итем из етого сета.

.ItemIndex(0) - неработает пишет неподдерживается метод или свойство.

И впринципе ни один пример с msdn-а не работает.
В чем собака порылась?

pva
31-10-2008, 21:23
какая операционка?

Requirements
Client Requires Windows Vista.
Server Requires Windows Server 2008.
Type Library Use Wbemdisp.tlb.
DLL Requires Wbemdisp.dll.

может поэтому?

а вот так сработает (js):

var strComputer = ".";
var objWMIService = GetObject("winmgmts:\\\\" + strComputer + "\\root\\cimv2");
var iter = new Enumerator(objWMIService.ExecQuery("Select * from Win32_Process"))

for (; !iter.atEnd(); iter.moveNext())
{
WScript.Echo(iter.item().Caption);
}

или так: (vb)

strComputer = ".";
set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2");

for each item in objWMIService.ExecQuery("Select * from Win32_Process")
WScript.Echo item.Caption
next

newbas
03-11-2008, 10:47
Да виноват .... не виста у меня :( pva
примеры работают..... и что получаецца конкретный итем под ХП мона выбрать только for each ?

pva
06-11-2008, 12:20
мне кажется это правильней, потому что:
1. Не гарантировано, что порядок будет всегда один и тот же (а следовательно через день Item#1 будет Item#10)
2. Не гарантировано, что Item#10 вообще будет
Если ищешь что-то конкретное, допиши where в select, так чтобы он выдавал всегда одно значение. Либо ни одного, если такого значения нет.




© OSzone.net 2001-2012