Cpu Temperature(İşlemci Sıcaklığı) Çekmek
-
Öncelikle herkese kolay gelsin.
C# ile cpu sıcaklığını çekmeye çalışıyorum,wmi yöntemiyle denedim ama sabit bir değer veriyor sıcaklık hiç değişmiyor.
Denediğim kod parçası da şurada
public string CpuTemp() { string sonuc = ""; ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature"); foreach (ManagementObject obj in searcher.Get()) { double temp = Convert.ToDouble(obj["CurrentTemperature"].ToString()); temp = (temp - 2732) / 10.0; sonuc = temp.ToString(); } return sonuc; } -
-
Baktım onlar da wmi ama yemiyor malesef
-
http://openhardwaremonitor.org/
Bunu dene bak bakalim senin CPU sicakligini gosteriyor mu, gostermiyorsa senin bilgisayarin desklemiyor olabilir, galiba anakartla ilgili birsey olmali.
Sende calisiyorsa da, program .net ile open source olarak gelistirilmis, enjoy.
https://code.google.com/p/open-hardware-monitor/
SpArK tarafından 13/Eki/13 20:44 tarihinde düzenlenmiştir -
SpArK bunu yazdı
http://openhardwaremonitor.org/
Bunu dene bak bakalim senin CPU sicakligini gosteriyor mu, gostermiyorsa senin bilgisayarin desklemiyor olabilir, galiba anakartla ilgili birsey olmali.
Sende calisiyorsa da, program .net ile open source olarak gelistirilmis, enjoy.
https://code.google.com/p/open-hardware-monitor/
Exesi çalıştı doğru değerleri veriyor fakat dll'leri çekip kendim yazdığım zaman "no value" olarak dönüyor, alttaki kodu deniyorum
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenHardwareMonitor; using OpenHardwareMonitor.Hardware; namespace CPUTemperatureMonitor { public partial class Form1 : Form { Computer thisComputer; public Form1() { InitializeComponent(); thisComputer = new Computer() { CPUEnabled = true }; thisComputer.Open(); } private void timer1_Tick(object sender, EventArgs e) { String temp = ""; foreach (var hardwareItem in thisComputer.Hardware) { if (hardwareItem.HardwareType == HardwareType.CPU) { hardwareItem.Update(); foreach (IHardware subHardware in hardwareItem.SubHardware) subHardware.Update(); foreach (var sensor in hardwareItem.Sensors) { if (sensor.SensorType == SensorType.Temperature) { temp += String.Format("{0} Temperature = {1}\r\n", sensor.Name, sensor.Value.HasValue ? sensor.Value.Value.ToString() : "no value"); } } } } textBox1.Text = temp; } } } -
erc bunu yazdıSpArK bunu yazdı
Suan macos ortamindayim, birsey deneyip bakamiyorum ama; visual studion ya da calistirdigin exe administrator olarak mi calisiyor, bir bakar misin ? Degilse visual studionu Administrator olarak calistirip bir dener misin
-
SpArK bunu yazdıerc bunu yazdıSpArK bunu yazdı
Suan macos ortamindayim, birsey deneyip bakamiyorum ama; visual studion ya da calistirdigin exe administrator olarak mi calisiyor, bir bakar misin ? Degilse visual studionu Administrator olarak calistirip bir dener misin
Eyvallah hocam run as administrator çözdü olayı çok teşekkür ettim :)
