اگه تا به حال از ویندوزهای ویستا یا ۷ استفاده کرده باشید ، احتمالا گجت کارآمد CPU Meter را امتحان کرده اید . این گجت میزان استفاده از پردازنده و رم سیستم را نشان میدهد .
اگر تابحال از این گجت استفاده نکرده اید ، میتوانید به طریق زیر از این گجت استفاده کنید :
۱- ابتدا در Desktop خود راست کلیک کرده و گزینه Gadgets را انتخاب کنید .
[برای نمایش لینک باید عضو شوید. ]
سپس از صفحه باز شده گزینه CPU Meter را انتخاب کرده و روی آن دابل کلیک کنید تا به Desktop شما اضافه شود .
[برای نمایش لینک باید عضو شوید. ]
مشاهده میکنید که این گجت به Desktop شما اضافه شده و میزان استفاده از پردازنده و رم سیستم را به شما نشان میدهد .
[برای نمایش لینک باید عضو شوید. ]
در ادامه ما نیز قصد داریم تا با استفاده از زبان برنامه نویسی سی شارپ مشابه چنین کاری را که ویندوز انجام میدهد ، انجام دهیم . البته نه به زیبایی که ویندوز این کار را انجام میدهد ولی باز هم قابل قبول است .
ابتدا یک پروژه سی شارپ باز کنید و نامش رو CPU and RAM Using بگذارید .
اشیا زیر را به فرم خود اضافه کنید و مقادیر آنها را نیز طبق مطالب ذیل تغییر دهید :
۱- ProgressBar
Name = prgs_CPU_Using
Value = 0
2- Label
شما باید دو عدد Label روی فرم قرار دهید و خاصیت های تکست آنها را به ترتیب زیر تغییر دهید .
خاصیت Text لیبل اول را برابر با ” میزان مصرف پردازنده ” و خاصیت Text لیبل دوم را برابر با ” میزان حافظه قابل استفاده ” قرار دهید .
AutoSize = False
RightToLeft = Yes
3- PictureBox
Name = pic_Chip
Size Mode = AutoSize
در پایان مقاله ، فایل سورس پروژه قرار داده شده است . اکنون سه عدد PictureBox به فرم خود اضافه کرده و اندازه آنها را به اندازه یک مربع کوچک کنید . و سپس خاصیت visible هرسه را برابر با False قرار دهید . در همان فولدر مربوط به پروژه سه تصویر با فرمت PNG قرار دارند که شما باید این سه تصویر را به PictureBox ها اضافه کنید تا در مواقع مورد نظر از آنها استفاده کنیم . پس روی PictureBox های موجود در فرم کلیک کنید . سپس از قسمت مربوط به خواص اشیا روی قسمت مشخص شده در تصویر زیر کلیک کنید تا بتوانیم عکس ها را اضافه کنیم .
[برای نمایش لینک باید عضو شوید. ]
پس از این با صفحه Select Resource مواجه خواهید شد . در اینجا باید با کلیک بروی دکمه Import ، تصاویری را که عرض کردم به پروژه خود اضافه کنید .
برای PictureBox اول تصویر Chip.png را اضافه کنید .
برای PictureBox دوم تصویر Chip_Exc.png و برای PictureBox سوم هم تصویر Chip_crit.png را اضافه کنید .
اکنون یک PictureBox بزرگ میماند که PictureBox اصلی ماست . در این Picturebox هم تصویر Chip.png را لود کنید .
در پایان دکمه OK را کلیک کنید .
[برای نمایش لینک باید عضو شوید. ]
۴- Timer
Enabled = True
Interval = 1000
پس از انجام این مراحل ، اکنون باید فرم شما شبیه تصویر زیر باشد :
[برای نمایش لینک باید عضو شوید. ]
حالا به یکی از مهمترین قسمت های ساخت برنامه رسیدم . درست است ، قسمت کد نویسی برنامه .
در اینجا ما تمامی اطلاعات را از سیستم دریافت کرده و به صورتی که خودمان میخواهیم ، به کاربر نشان خواهیم داد .
وارد قسمت کد نویسی شوید .
ابتدا بایستی فضای نام System.Diagnostics را برای پروژه تان تعریف کنید . پس در بالاترین قسمت محیط کد نویسی ، کد زیر را وارد میکنیم .
[LEFT][COLOR=#3366ff]using System.Diagnostics;[/COLOR]
[/LEFT]
سپس باید یک object از کلاس PreformanceCounter که در فضای نام System.Diagnostics قرار دارد ، تعریف کنیم . پس کد زیر را در قسمت شروع کلاس Form1 ، وارد میکنیم .
کد:
PerformanceCounter CPU_Using = new PerformanceCounter();
PerformanceCounter RAM_Using = new PerformanceCounter();
توضیح دو خط بالا :
در دو خط بالا ما دو object از کلاس PreformanceCounter تعریف کردیم . یکی برای پردازنده و دیگری برای رم .
اکنون باید کدهایی که وظیفه استخراج اطلاعات از سیستم دارند را در قسمت کد نویسی وارد کنیم .
به دلیل اینکه این اطلاعات بایستی در بازه های زمانی خاص به روز شوند ، ما کدهای اصلی را در رویداد Tick مربوط به تایمر خود وارد میکنیم .
ابتدا برای بدست آودن میزان استفاده از پردازنده :
[LEFT][COLOR=#3366ff]//#####################################################################[/COLOR]
[/LEFT]
[LEFT][COLOR=#3366ff]//# Get CPU Using.[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]CPU_Using.CategoryName = “Processor”;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]CPU_Using.CounterName = “% Processor Time”;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]CPU_Using.InstanceName = “_Total”;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]//============================================[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]double Rounded_CPU_Usage;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]Rounded_CPU_Usage = Math.Round(CPU_Using.NextValue());[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]label1.Text = “میزان مصرف پردازنده : ” + Rounded_CPU_Usage + ” % “;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]prgs_CPU_Using.Value = (int) Rounded_CPU_Usage;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]//=============================================[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]if (Rounded_CPU_Usage >= 0 && Rounded_CPU_Usage <= 45)[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]{[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]pic_Chip.Image = pic_Chip_Normal.Image;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]}[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]else if (Rounded_CPU_Usage >= 46 && Rounded_CPU_Usage <= 74)[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]{[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]pic_Chip.Image = pic_Chip_Exclamation.Image;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]}[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]else if (Rounded_CPU_Usage >= 75 && Rounded_CPU_Usage <= 100)[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]{[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]pic_Chip.Image = pic_Chip_Critical.Image;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]}[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]//#####################################################################[/COLOR][/LEFT]
توضیح :

دو خط اول توضیحات است .
خط سوم : طبقه بندی قطعه های سیستم است که ما در آن Processor را انتخاب کرده ایم که به پردازنده سیستم اشاره دارد .
خط چهارم : در اینجا ما مشخص کرده ایم که میخواهیم میزان مشغول بودن پردازنده را بدست بیاوریم .
خط پنجم : مجموع مقادیر را بدست می آوریم .
خط هفتم : یک متغیر از نوع double تعریف کرده ایم .
خط هشتم : مقدار بدست آمده را روند کرده و به متغییر میفرستیم .
خط نهم : نمایش میزان استفاده از پردازنده با استفاده از لیبل .
خط دهم : نمایش میزان استفاده از پردازنده با بهره گیری از نوار پیشرفت ( ProgressBar ) بر حسب درصد .
خط دوازدهم تا بیست و سوم : در اینجا ما یک دستور شرطی استفاده کرده ایم که اگر میزان استفاده از پردازنده بین ۰ تا ۴۵ درصد بود حالت Normal برای پردازنده نمایش داده شود ( همان تصویر تراشه که حالت عادی دارد و در Picturebox اول وجود دارد در Picturebox اصلی نمایش داده خواهد شد ) . در غیر این صورت اگر میزان استفاده بین ۴۶ تا ۷۴ درصد بود ، حالت اخطاری نمایش داده شود ( همان تراشه زرد رنگ در Picturebox دوم ) و در نهایت اگر میزان استفاده بین ۷۵ تا ۱۰۰ درصد بود حالت غیر عادی نمایان شود ( همان تراشه قرمز رنگ Picturebox سوم ) .
اما اکنون به قسمت محاسبه میزان استفاده از رم سیستم میرسیم .
کد زیر را در یک خط پایین تر از کدهای مربوط به محاسبه میزان استفاده از پردازنده وارد کنید .
[LEFT][COLOR=#3366ff]//#####################################################################[/COLOR]
[/LEFT]
[LEFT][COLOR=#3366ff]//# Get RAM Using.[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]RAM_Using.CategoryName = “Memory”;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]RAM_Using.CounterName = “Available MBytes”;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]label2.Text = “میزان حافظه قابل استفاده : ” + RAM_Using.NextValue().ToString() + ” مگابایت “;[/COLOR][/LEFT]
[LEFT][COLOR=#3366ff]//#####################################################################[/COLOR][/LEFT]
خط سوم : به قطعه رم اشاره شده است .
خط چهارم : میزان حافظه قابل استفاده بر حسب مگابایت محاسبه خواهد شد .
خط پنجم : نمایش مقدار بدست آماده در لیبل .
توجه داشته باشید که تمامی کدهایی که در مقاله وجود دارند پس از کپی کردن آنها در ویژوال استدیو ، درست خواهند شد و نامنظمی در آنها دیده نمیشود .
در اینجا نیز ۳ عدد اسکرین شات از ۳ حالت مختلف برنامه برای شما خواهیم گذاشت :
[برای نمایش لینک باید عضو شوید. ]
[برای نمایش لینک باید عضو شوید. ]
[برای نمایش لینک باید عضو شوید. ]
سورس برنامه را نیز میتوانید از[برای نمایش لینک باید عضو شوید. ] دریافت کنید .
قابل ذکر است که این برنامه در ویندوز XP نیز کار میکند .