WMI C # - WMI дает неправильные показания напряжения - PullRequest
1 голос
/ 18 декабря 2011

Поэтому я создал программу с WPF, C # и WMI в качестве небольшого проекта для сбора технических характеристик компьютера и поместил его в SourceForge, потому что он мне мало пригодился.
Вскоре я обнаружил, что SoftPedia подобрал его, и заметил на их скриншоте, что произошла ошибка при считывании напряжения. Это изображение с их страницы:

http://i.stack.imgur.com/8QpBq.png

В данный момент я подаю напряжение с помощью «CurrentVoltage», например,

foreach (var item in new ManagementObjectSearcher("Select * from Win32_Processor").Get())
{
    labelName.Content = (decimal.Parse(item["CurrentVoltage"].ToString()) / 10).ToString() + " v";
}

Как вы можете видеть на изображении, на рисунке оно читается как 0v. Мне было интересно, нужно ли мне переключать «CurrentVoltage» на «VoltageCaps» или мне нужно что-то вроде чтения SMBIOS напрямую.

Если последнее, уточните, пожалуйста, как это сделать, спасибо.

1 Ответ

2 голосов
/ 18 декабря 2011

На основе документации для Win32_Processor класс:

Напряжение процессора. Если установлен восьмой бит, биты 0-6 содержат напряжение, умноженное на 10. Если восьмой бит не установлен, то установка бита в VoltageCaps представляет значение напряжения. CurrentVoltage устанавливается только тогда, когда SMBIOS определяет значение напряжения.

Это означает, что если он читается как 0 при маскировке с 0x80, то вы должны использовать значение из VoltageCaps, чтобы «указать» напряжение как одно из 3 перечисленных значений для VoltageCaps, если только результат запроса равен NULL, в этом случае напряжение неизвестно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...