1 (изменено: what?, 2013-05-23 18:19:15)

Тема: 1Сv8 Получение значения температуры процессора

Доброго времени суток, друзья! Я еще совсем дилетант, но мне понадобилось получить значение температуры процессора. Я начитался всяких статей форумов и мало что понял. Собственно, я предполагал, что это должно выглядеть вот так:

Процедура ПриНачалеРаботыСистемы()
ИмяСервера = "localhost";

СервисыУправления = ПолучитьCOMОбъект("winmgmts://"+ИмяСервера);

ИмяКласса = "MSAcpi_ThermalZoneTemperature";

ДанныеСчетчика = СервисыУправления.ExecQuery ("select * from " + ИмяКласса);
Для каждого СтрокаРезультат Из ДанныеСчетчика Цикл
Результат = СтрокаРезультат["CurrentTemperature"];
КонецЦикла;
Сообщить(Результат);
КонецПроцедуры

Но код не работает. Что не так? Как это можно сделать? Не знаю, правильно ли я оформил тему, но все же прошу вас помочь мне.

2

Re: 1Сv8 Получение значения температуры процессора

Банально: может не быть имплементации (класс есть, а библиотеки, отвечающей за реализацию — нет). Или умолчальное пространство не «root/WMI».

3

Re: 1Сv8 Получение значения температуры процессора

Попробуйте, что «скажет» такой WSH:

Option Explicit

Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim collSWbemObjectSet
Dim objSWbemObjectEx


strComputer = "."

Set objSWbemLocator    = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\WMI")
Set collSWbemObjectSet = objSWbemServicesEx.ExecQuery("SELECT * FROM MSAcpi_ThermalZoneTemperature")

For Each objSWbemObjectEx In collSWbemObjectSet
    With objSWbemObjectEx
        If .Active Then
            WScript.Echo .InstanceName & ":", .CurrentTemperature / 10 - 273.2
        End If
    End With
Next

Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0

Пример:

ACPI\ThermalZone\TZ00_0: 27.8
ACPI\ThermalZone\TZ01_0: 29.8

4

Re: 1Сv8 Получение значения температуры процессора

Спасибо!
Пишут что ошибка на 17 строке на 1 символе.
А как этот скрипт применить? А то я совсем плохо еще соображаю.

5

Re: 1Сv8 Получение значения температуры процессора

what?, пустая коллекция возвращается, оттого и ошибка возникает. Значит:

может не быть имплементации

Доступа к значениям температуры Wbem на этой машине не имеет.

6

Re: 1Сv8 Получение значения температуры процессора

Ну, а как разрешить доступ, подскажите, пожалуйста.

7

Re: 1Сv8 Получение значения температуры процессора

Никак.

8

Re: 1Сv8 Получение значения температуры процессора

Что, вообще никак?
Я же серьезно спрашиваю.

9

Re: 1Сv8 Получение значения температуры процессора

Можете написать свой поставщик данных: Creating WMI Providers (Windows).