WMI – ошибка в получении энумератора...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

WMI – ошибка в получении энумератора...

Сообщение awl100Alex » 27.07.2008 (Вс) 9:47

В WMI «проектировании» я новичок, делаю первые шаги в изучении и столкнулся с такой проблемой: компилятор VB выдает «Automation error» при попытке получить энумератор объекта colItems.

Вот, к примеру, такой код...
Код: Выделить всё
Sub MonitorTerm()
    Set objWMIService = GetObject("winmgmts:\\.\root\WMI")
    Set colItems = objWMIService.ExecQuery("SELECT CriticalTripPoint, CurrentTemperature FROM MSAcpi_ThermalZoneTemperature", , 48)
    For Each objItem In colItems
        MaxTerm = Int(objItem.CriticalTripPoint / 10 - 273)
        СurTerm = Int(objItem.CurrentTemperature / 10 - 273)
    Next
End Sub


В стороке...
Код: Выделить всё
For Each objItem In colItems

...происходит «спотыкание». НО(!), что интересно: на другой машине с той же самой ОС и примерно таким же «железом», все прекрасно работает...

Подскажите, пожалуйста, в чем тут причина??? И как можно устранить эту проблему???

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Сообщение awl100Alex » 30.07.2008 (Ср) 12:24

Хм... :? Неужели никто не знает???..

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 31.07.2008 (Чт) 11:06

Ну тут же все просто. Если ExecQuery вернул пустой сет, значит запрос кривой. Смотри WMI браузерами, какие у тебя на машине спейсы, классы, проперти. Наверняка просто там не существует какого то из запрашиваемых классов или свойств.
I don't understand. Sorry.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Сообщение Alprog » 31.07.2008 (Чт) 12:11

Смотри WMI браузерами

В винде даже есть встроенные.
В командной строке:

wbemtest.exe
wmimgmt.msc

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Сообщение awl100Alex » 02.08.2008 (Сб) 1:17

Да я тут уже по всякому "выпендривался"... и с MSDN коды пробовал, и другие примеры использовал, к примеру:..

Код: Выделить всё
Private Sub Form_Load()
strServer = "."

Set objWMI = GetObject("winmgmts://" & strServer & "/root\WMI")
Set objInstances = objWMI.InstancesOf("MSAcpi_ThermalZoneTemperature", 48)

For Each objInstance In objInstances
    With objInstance
        Print "Current CPU Temperature: " & (.CurrentTemperature - 2732) / 10 & "°C"
        Print "Temperature Sampling Period: " & .SamplingPeriod & " seconds"
        Print "Active Trip Point Count: " & .ActiveTripPointCount
    End With
Next
End Sub


...но результат тотже... :(

В браузер тоже смотрел, но там же справки нигде нет. :( Попробуй разбери что там к чему...

Вот решил скриншот сделать, может подскажите чего... Вроде как есть и класс нужный и объект и свойство, но напротив свойства CurrentTemperature стоит <null> - это как понимать??
Вложения
WMIBrowser.jpg
скриншот...
WMIBrowser.jpg (170.12 Кб) Просмотров: 677

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.08.2008 (Сб) 13:04

Слушай, а может у тебя на той машине просто нет поддержки мониторинга железок? Дров там каких-нибудь нет, которые обеспечивают мониторинг температуры или еще чего?



И да, попробуй в wbemtest.exe по кнопке Query потестить свои запросы - посмотришь, что они возвращают.
I don't understand. Sorry.

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Сообщение awl100Alex » 03.08.2008 (Вс) 23:50

...нет поддержки мониторинга железок?

Да нет, вряд-ли... У меня вместе с дравами на материнку программа по контролю температур ставится, и вызввается отдельно (но неудобная очень). Температуры показывает. И Sandra тоже...

...попробуй в wbemtest.exe по кнопке Query потестить свои запросы...


Вот с этого места по-подробней, пжлст... У меня чего-то не выходит... Может не так чего делаю. Подскажи, как?.. Вот скриншот...
Вложения
Proba.jpg
Чето не фурычит...
Proba.jpg (58.74 Кб) Просмотров: 677


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48

    TopList