Вопрос об WMI

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Aleksej
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 191
Зарегистрирован: 03.06.2003 (Вт) 9:58

Вопрос об WMI

Сообщение Aleksej » 13.08.2004 (Пт) 14:06

Почему не работает код приведённый ниже? Заранее спасибо за ответы.
Код: Выделить всё
Dim strComputer As String
Dim objWMIService As Object, colFan As Object, objFan As Object

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colFan = objWMIService.ExecQuery("SELECT * FROM Win32_Fan")
    For Each objFan In colFan
        Debug.Print "Name: " & objFan.Name
        Debug.Print "VariableSpeed: " & objFan.VariableSpeed
    Next

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

Сообщение RayShade » 13.08.2004 (Пт) 15:59

А зачем городить такой странный огород? Можно просто

Set colFan = objWMIService.instancesof("Win32_Fan")



Хотя, если система не поддерживает нужный ACPI API то по просту замер скорости вентилятора недоступен и класс ничего не вернет.
I don't understand. Sorry.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.08.2004 (Пн) 7:45

Класс работает, иногда, тока под ХП и 2к3 треба всякие драйвера поставить, вообщем на данный момент гиблая затея.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

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

Сообщение RayShade » 16.08.2004 (Пн) 8:27

А я про что говорю? Если нет поддержки со стороны операционки, то и класс ничего не вернет, т.е. работать не станет.
I don't understand. Sorry.

Aleksej
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 191
Зарегистрирован: 03.06.2003 (Вт) 9:58

Сообщение Aleksej » 16.08.2004 (Пн) 8:33

В том то всё и дело, что этот код не работает:
Код: Выделить всё
  Dim wmiObjSet As Object
   Dim obj, colTemp As Object
   Dim strComputer As String
   
  strComputer = "localhost"
   

   On Local Error Resume Next
   Set wmiObjSet = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
   Set colTemp = wmiObjSet.InstancesOf("Win32_TemperatureProbe")

А вот так температура проца возвращается:
Код: Выделить всё
Dim strComputer As String
Dim wbemServices  As Object, wbemObjectSet As Object
Dim Item As Object


Set wbemServices = GetObject("winmgmts:" & "\\localhost\root\wmi")
Set wbemObjectSet = wbemServices.InstancesOf("MSAcpi_ThermalZoneTemperature")

For Each Item In wbemObjectSet
Debug.Print "CPU Temperature: " & (Item.CurrentTemperature - 2732) / 10 & "°C"
Next

В Windows 2000 работает 100% проверено.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.08.2004 (Пн) 10:25

БЛин, так у тя тут разные классы используются!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Aleksej
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 191
Зарегистрирован: 03.06.2003 (Вт) 9:58

Сообщение Aleksej » 16.08.2004 (Пн) 10:28

Правильно разные. Вопрос, почему один работает, а другой нет ?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.08.2004 (Пн) 10:32

У меня, кстати, на ХП СП1 оба не работают(((
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.08.2004 (Пн) 10:32

щя тестану на 2к
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.08.2004 (Пн) 10:42

А откуда вот этот класс?
MSAcpi_ThermalZoneTemperature

У меня его в списке нет((((

Чёто развод какойто! даже поиск MS-ya-yahoo ничё не дал!!!!!!!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.08.2004 (Пн) 10:51

точняк, на 2к пашет.... а на ХП даже класса такого нет(((

Щяяяяз разберёмся...
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 2

    TopList