نمایش نتایج 1 تا 16 از 16

نام تاپیک: بدست آوردن دمای CPU

  1. #1

    بدست آوردن دمای CPU

    سلام به تمامی دوستان.
    چطوری میشه دمای cpu رو بدست بیاریم؟ یه تاپیک در این مورد بود. ولی فقط برای مادربورد Asuse بود. میشه کاری کرد که هر cpu ای بود دماشو بدست بیاریم؟

  2. #2

    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"]);
    }

  3. #3
    این کد رو امتحان کردم ولی از selectquery , ManagementObjectSearcher ایراد میگیره. میشه کمی توضیح بدید؟
    من این کد هارو تو consol نوشتم.
    شایدم فضای نامی داره که من نمیدونم.

  4. #4
    در قسمت Reference گزینه های System.Managment و System.Managment.Instrumentation رو از برگه .Net انتخاب و Add کنید.

  5. #5
    باز هم همون ایراد رو میگیره.
    من این کد رو داخل void main در consol میزنم. درسته؟

  6. #6
    مشکل خطاها رفع شد. مشکل این بود که از using استفاده نکردم.
    حالا اجرا میشه. ولی چیزی نمایش نمیده.
    منظورم عددی چیزی.

  7. #7
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    Exclamation

    کد بالا شاید به خاطر اینکه درایور مورد نظر مادربورد و ندارین کار نمیکنه
    اینو هم تست کنین معمولا جواب میده

    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);
    }
    }
    }
    }


    موفق باشید

  8. #8
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    تبریز
    پست
    501
    من یه پیشنهاد دارم البته د رمقابل بزرگان کار خوبی نیست
    و اینکه و قتی با توابع wmi همان management کار می کنید خیلی بیشتر از msdn استفاهه کنین چون که واقعا به طور کامل توضیح داده و تمام کلاس ها توش هست

  9. #9
    سلام دوستان. از کمکتون ممنون.
    من تازه کارم. فقط اگه جناب برمودا بگه این کدی که نوشته کجا وارد کنم ممنونم.
    اگرم وقت کردید یه توضیحی بدید.

  10. #10
    سلام. آقا فهمیدم باید کجا بذارم.
    ولی فقط یه جواب همش میده. که اینه: 3152
    این عدد چیه؟یعنی فقط ام یه عدده ثابته؟

  11. #11

  12. #12

  13. #13
    سلام دوست عزیز. از کمکت واقعا ممنونم.
    حالا اگه من بخوام اینارو تو winapplication بیارم باید چیکار کنم؟ کداشو میارم خطا میده.

  14. #14
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604
    شما تو کد قبلی که گذاشته بودم نگا کنین ببینین چه کارایی انجام میشه؟ اول میاد با استفاده از WMI دمای CPU رو پیدا میکنه و بعد تو صفحه Consol نشون میده مقدارشو.

    حالا همه جا ( چه Consol و چه WinApp ) فقط این مقدار واسه شما مهمه و اینکه چجوری ازش استفاده کنین.

    مثلا تو Consol واسه نشون دادن نتیجه از یه دستوری استفاده شده و قبلش هر کدی هست یه چیز ثابتیه. حالا این قسمت ثابت تو WinApp هم باید باشه (چون واسه پیدا کردن دما این کدا لازمه) و برای نشون دادن نتیجه تو WinApp هر جور دوست داشته باشی کار میکنی مثلا مقدارشو تو یه MessageBox نشون میدی یا ...

  15. #15

    نقل قول: بدست آوردن دمای CPU

    از پست 8 مربوط به Amir Oveisi استفاده کردم ارور Not Supported داد.چه طوری حل میشه؟توی این سایت چند تا تاپیک دیگه در این مورد بود این از همه سرراست تر بود. که البته جواب نداد.آیا راه حل ساده تری برای بدست اوردن دمای CPU هست یا نه؟

  16. #16

    نقل قول: بدست آوردن دمای CPU

    دوست عزیز برای دسترسی به دیتاهای مربوط به مثلا دمای پردازنده ، هر Main board ، سیاست های خودش رو برای خوندن دیتاهای سنسور های ارائه شده بر روی Board داره . لازم به ذکر هست که بعضی از board ها هم اصلا امکان دسترسی به این دیتاهارو فراهم نمیکنند که خوب تعدادشون کم هست .

    برای یک روش مطمئن ، شما میتونی از پروژه اوپن سورس ای مانند openhardwaremonitor یا alcpu استفاده کنی که رابط های دسترسی به سنسورهای مرتبط به Board های گوناگون رو بر اساس manuals های اونا تهیه کردن و طیف عزیمی از Board هارو پشتیبانی میکنند .

    پروژه alcpu یک SDK رو ارائه میده برای توسعه دهنده ها که میتونید توی C#‎ هم ازش بهره ببرید ...

    http://openhardwaremonitor.org/
    http://www.alcpu.com/CoreTemp/developers.html

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •