سلام به تمامی دوستان.
چطوری میشه دمای cpu رو بدست بیاریم؟ یه تاپیک در این مورد بود. ولی فقط برای مادربورد Asuse بود. میشه کاری کرد که هر cpu ای بود دماشو بدست بیاریم؟
سلام به تمامی دوستان.
چطوری میشه دمای cpu رو بدست بیاریم؟ یه تاپیک در این مورد بود. ولی فقط برای مادربورد Asuse بود. میشه کاری کرد که هر cpu ای بود دماشو بدست بیاریم؟
SelectQuery myQuery = new SelectQuery("SELECT CurrentReading from Win32_TemperatureProbe");
ManagementObjectSearcher mySearcher = new ManagementObjectSearcher(myQuery);
foreach (ManagementBaseObject obj in mySearcher.Get())
{
Console.Write("Temp: " + obj["CurrentReading"]);
}
این کد رو امتحان کردم ولی از selectquery , ManagementObjectSearcher ایراد میگیره. میشه کمی توضیح بدید؟
من این کد هارو تو consol نوشتم.
شایدم فضای نامی داره که من نمیدونم.
در قسمت Reference گزینه های System.Managment و System.Managment.Instrumentation رو از برگه .Net انتخاب و Add کنید.
باز هم همون ایراد رو میگیره.
من این کد رو داخل void main در consol میزنم. درسته؟
مشکل خطاها رفع شد. مشکل این بود که از using استفاده نکردم.
حالا اجرا میشه. ولی چیزی نمایش نمیده.
منظورم عددی چیزی.
کد بالا شاید به خاطر اینکه درایور مورد نظر مادربورد و ندارین کار نمیکنه
اینو هم تست کنین معمولا جواب میده
using System;
using System.Management;
using System.Windows.Forms;
namespace WMISample
{
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\WMI",
"SELECT * FROM MSAcpi_ThermalZoneTemperature");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("MSAcpi_ThermalZoneTemperature instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("CurrentTemperature: {0}", queryObj["CurrentTemperature"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}
موفق باشید
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
من یه پیشنهاد دارم البته د رمقابل بزرگان کار خوبی نیست
و اینکه و قتی با توابع wmi همان management کار می کنید خیلی بیشتر از msdn استفاهه کنین چون که واقعا به طور کامل توضیح داده و تمام کلاس ها توش هست
سلام دوستان. از کمکتون ممنون.
من تازه کارم. فقط اگه جناب برمودا بگه این کدی که نوشته کجا وارد کنم ممنونم.
اگرم وقت کردید یه توضیحی بدید.
سلام. آقا فهمیدم باید کجا بذارم.
ولی فقط یه جواب همش میده. که اینه: 3152
این عدد چیه؟یعنی فقط ام یه عدده ثابته؟
Temperature at thermal zone in tenths of degrees Kelvin
فرمول تبدیلش به سانتی گراد رو برات میذارم
ولی خودم تست نکردم درست حسابی ببینم جوابش در چه حد درسته!
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
اینم روش تبدیل به سانتی گراد :
decimal ConvertToCelsius(string reading)
{
return (decimal.Parse(reading) / 10 - 273.15m);
}
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
سلام دوست عزیز. از کمکت واقعا ممنونم.
حالا اگه من بخوام اینارو تو winapplication بیارم باید چیکار کنم؟ کداشو میارم خطا میده.
شما تو کد قبلی که گذاشته بودم نگا کنین ببینین چه کارایی انجام میشه؟ اول میاد با استفاده از WMI دمای CPU رو پیدا میکنه و بعد تو صفحه Consol نشون میده مقدارشو.
حالا همه جا ( چه Consol و چه WinApp ) فقط این مقدار واسه شما مهمه و اینکه چجوری ازش استفاده کنین.
مثلا تو Consol واسه نشون دادن نتیجه از یه دستوری استفاده شده و قبلش هر کدی هست یه چیز ثابتیه. حالا این قسمت ثابت تو WinApp هم باید باشه (چون واسه پیدا کردن دما این کدا لازمه) و برای نشون دادن نتیجه تو WinApp هر جور دوست داشته باشی کار میکنی مثلا مقدارشو تو یه MessageBox نشون میدی یا ...
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
از پست 8 مربوط به Amir Oveisi استفاده کردم ارور Not Supported داد.چه طوری حل میشه؟توی این سایت چند تا تاپیک دیگه در این مورد بود این از همه سرراست تر بود. که البته جواب نداد.آیا راه حل ساده تری برای بدست اوردن دمای CPU هست یا نه؟
دوست عزیز برای دسترسی به دیتاهای مربوط به مثلا دمای پردازنده ، هر Main board ، سیاست های خودش رو برای خوندن دیتاهای سنسور های ارائه شده بر روی Board داره . لازم به ذکر هست که بعضی از board ها هم اصلا امکان دسترسی به این دیتاهارو فراهم نمیکنند که خوب تعدادشون کم هست .
برای یک روش مطمئن ، شما میتونی از پروژه اوپن سورس ای مانند openhardwaremonitor یا alcpu استفاده کنی که رابط های دسترسی به سنسورهای مرتبط به Board های گوناگون رو بر اساس manuals های اونا تهیه کردن و طیف عزیمی از Board هارو پشتیبانی میکنند .
پروژه alcpu یک SDK رو ارائه میده برای توسعه دهنده ها که میتونید توی C# هم ازش بهره ببرید ...
http://openhardwaremonitor.org/
http://www.alcpu.com/CoreTemp/developers.html