Перейти до вмісту

Як замірити температуру процесору?


Повідомлень в темі: 7

#1 Іґор

    Частий гість

  • Користувачі
  • PipPipPip
  • 33 повідомлень
  • Стать:Чоловік
  • Місто:Олександрія

Відправлено 16.06.2008 – 03:39

  • 7
Доводилось багато проґуґлити, облазити форумів у пошуках рецептів проведення заміру температури процесору. Жодної якої небудь корисної інформації по цьому питанню не знайшов, ставив питання на просунутих форумах

http://www.gotdotnet...mon/558838.aspx

Хоча от знаю, якось таки усеж це можна зробити. Взяти хоча б програму HWMonitor, що широко вживається оверклокерами при експериментах з розгону процесору

http://www.cpuid.com...Monitor_109.zip

Може ви маєте якісь здогадки, як це непристойне діло робиться?

#2 zav

    зрадник

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 9565 повідомлень
  • Стать:Чоловік
  • Місто:Київ

Відправлено 16.06.2008 – 09:29

Перегляд дописуІґор (16.06.2008 04:39) писав:

Може ви маєте якісь здогадки, як це непристойне діло робиться?
Узагалі-то BIOS'ом... але можна й купою різноманітних програмоґ. Дивно, що пан нічого не знашов.
  • 0

#3 Сварус

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3815 повідомлень
  • Стать:Чоловік
  • Місто:Вінниця

Відправлено 16.06.2008 – 10:51

Як же я люблю за когось гуглити а потім з серйозним виглядом лиця бадяжити великі розумні повідомлення :)

Спробуйте варіант, описаний тутечки. А саме:

Цитата

You can use WMI if your hardware is compliant. Use the wbemtest.exe
utility to confirm whether or not you can even retrieve the
temperature. There are two ways I know of to retrieve the temperature
information.

1) Using wbemtest.exe connect to the namespace "root\cimv2" (without
quotes). Click the Query button and enter "select * from
Win32_TemperatureProbe". Double click on any result you get back and
look for the CurrentReading property in the properties section. The
value you see there should be the temperature. If it just shows
"<null>" then this option will not work.

2) Using wbemtest.ext connect to the namespace "root\WMI". Enter the
query "select * from MSAcpi_ThermalZoneTemperature". Double click on
any result you get back and look for the CurrentTemperature property.
The value is in tenths of degrees Kelvin.

Але в мене (і не тільки) Windows Management Instrumentation Tester показав що я не зможу взнати температуру методами WMI :) Відповідно жоден з наступних лістів не працює(не проходить select * from ХХХ, можливо у Вас пройде)
			string scope = @"root\WMI";
			string query = @"select * from MSAcpi_ThermalZoneTemperature";

			ManagementObjectSearcher searcher = new
			ManagementObjectSearcher(scope, query);

			foreach (ManagementObject obj in searcher.Get())
			{
				Console.WriteLine(obj.Properties["CurrentTemperature"].Value);
			}

			ManagementObjectSearcher searcher = new ManagementObjectSearcher ("SELECT * FROM Win32_TemperatureProbe");
			foreach (ManagementObject service in searcher.Get())
				Console.WriteLine("Service = " + service["Caption"]);
(Не забути підєднати System.Management неймспейс і референс)

Про Win32_TemperatureProbe Class можна прочитати на MSDNі

Ото ж, залишаєтсья два варіанти:

  • 0

#4 Lactarius

    Генеральний писар

  • Користувачі
  • PipPipPipPipPipPipPipPipPip
  • 976 повідомлень
  • Стать:Чоловік
  • Місто:Львів

Відправлено 16.06.2008 – 11:24

Аналогічно... Температуру не міряє... Писав... Те WMI трохи косолапе... В будь якому випадку на процесорі повинні бути датчики температури... Але вони зараз є майже на всіх процессорах... Імхо треба юзати асемблер...

Весь флуд видалив я Lactarius (aka Ivan Metal!)
  • 0

#5 Іґор

    Частий гість

  • Користувачі
  • PipPipPip
  • 33 повідомлень
  • Стать:Чоловік
  • Місто:Олександрія

Відправлено 16.06.2008 – 23:49

Перегляд дописуzav (16.06.2008 10:29) писав:

Узагалі-то BIOS'ом... але можна й купою різноманітних програмоґ. Дивно, що пан нічого не знашов.

ОЯК пан Псіна порадив справно. :happy1:

Перегляд дописуСварус (16.06.2008 11:51) писав:

Відповідно жоден з наступних лістів не працює(не проходить select * from ХХХ, можливо у Вас пройде)

І в мене непроходить.

Отож наґуґлив був також посилань на форуми співтовариств розробників. Така тема не раз ставилась, усі руками розводять та переводять стріли на Microsoft, перепосилаючи до MSDN

Перегляд дописуLactarius (aka Ivan Metal!) (16.06.2008 12:24) писав:

Аналогічно... Температуру не міряє... Писав... Те WMI трохи косолапе... В будь якому випадку на процесорі повинні бути датчики температури... Але вони зараз є майже на всіх процессорах... Імхо треба юзати асемблер...

Не розумію, чому тоді клас цей є у WMI? А шо ж я асемблером напишу, коли це - лише одна (звісно бажана) функція моєї програми.
  • 0

#6 volodymyr_ch

    Абориген

  • Користувачі
  • PipPipPipPip
  • 96 повідомлень
  • Стать:Чоловік

Відправлено 17.06.2008 – 22:25

Цитата

Імхо треба юзати асемблер...

А що це дасть ? В захищеному режимі в третьому кільці до заліза просто так не дістанешся... В MSDN написано, що хоча й є клас WMI для датчиків температури, але його метод з отриманням поточного значення температури не працює і зарезервований для майбутнього використання... HWMonitor, як мені здалося з лістингу OllyDbg, читає таблиці ACPI...

Хто перший знайде вирішення даної проблеми, нехай скине сюди якусь інформацію - думаю, знайдуться люди, яким це згодиться...

Повідомлення відредагував volodymyr_ch: 17.06.2008 – 22:29

  • 0

#7 Іґор

    Частий гість

  • Користувачі
  • PipPipPip
  • 33 повідомлень
  • Стать:Чоловік
  • Місто:Олександрія

Відправлено 17.06.2008 – 23:16

Мені здається - використовується API функція DeviceIOControl.
  • 0

#8 Іґор

    Частий гість

  • Користувачі
  • PipPipPip
  • 33 повідомлень
  • Стать:Чоловік
  • Місто:Олександрія

Відправлено 17.06.2008 – 23:48

Принаймні у приєднаному файлі HDDInfo.zip, за допомогою DeviceIOControl читається температура вінчестеру (вихідники на VB6).[attachment=15000:HDDInfo.zip]
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних