loading...
.: موسسه علمی آموزشی نخبگان برنامه نویسی فلوچارت :.
Admin بازدید : 1110 سه شنبه 06 اسفند 1392 نظرات (0)

مانند همیشه یک پروژه سی شارپ جدید بسازید.


در پنجره ی Solution Explorer روی References راست کلیک کرده و Add Reference را انتخاب کنید.

حالا سربرگ .Net را انتخاب نمایید و در لیست به دنبال System.Management بگردید و پس از پیدا کردن آن OK را کلیک کنید تا به مجموعه رفرنس های پروژه اضافه شود.


روی فرم دابل کلیک کرده تا وارد بخش کد نویسی شوید.

قصد داریم تنها از دو کلاس ManagementObject و ManagementObjectSearcher استفاده کنیم که در ریفرنسی که اضافه کردیم وجود دارند ، پس برای سهولت کد نویسی ابتدا این ریفرنس را در بالا معرفی میکنیم تا به کلاسهای آن دسترسی داشته باشیم :

using System.Management;
حالا به رویداد Load فرم بروید و یک شئ از کلاس ManagementObjectSearcher بسازید:
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_DiskDrive");
همانطور که دیدید در خط بالا برای ساخت شئ searcher یک پارامتر string به متد سازنده کلاس آن فرستاده ایم 
که خیلی شبیه دستور اس کیو ال هست. تنها نکته قابل توجه Win32_DiskDrive است که یک کالکشن مربوط به 
حافظه های جانبی متصل به کامپیوتر بر میگرداند ، به عنوان مثال هارد دیسک ها ، فلش ها و …
برای بدست آوردن مشخصات سی پی یو از Win32_Processor استفاده میکنیم.
حالا یک متغیر از نوع string تعریف میکنیم تا سریال هارد دیسک یا سی پی یو را در آن ذخیره کنیم و پس از آن 
یک حلقه ی foreach معرفی میکنیم که همه ی ManagementObject هایی که شئ seacher برای ما برمیگرداند
را بپیماییم و شماره سریال های آنها را بدست بیاوریم.
سپس آنرا با کادر پیام نمایش میدهیم.
string info = "";
foreach (ManagementObject obj in searcher.Get())
{
 try
 {
 info = obj.Properties["SerialNumber"].Value.ToString() + "\n";
 }
 catch { }
}
MessageBox.Show(info);
متد Get مربوط به شئ searcher یک کالکشن بر میگرداند که با حلقه آنها را یکی یکی پیموده ایم و پراپرتی SerialNumber آنها را بدست آورده ایم که برای برخی از اعضای این کالکشن ممکن است null باشد ، برای جلوگیری از رخ دادن خطا از try…catch استفاده کرده ایم.
هنگامی که میخواهید شماره سریال سی پی یو را بدست آورید از پراپرتی ProcessorId استفاده کنید که در این حالت کد مربوطه به این شکل خواهد بود :
info = obj.Properties["ProcessorId"].Value.ToString() + "\n";
روشی که در این مقاله آموزش داده شده امکان دارد روی برخی سخت افزارها جواب ندهد بنابراین قبل از استفاده از این کد ابتدا آنرا روی چند کامپیوتر تست کنید.
روش های زیادی برای بدست آوردن این مشخصات وجود دارد که مطمئنا این روش بهترین نیست!
کد کامل بدست آوردن شماره سریال هارد دیسک :
using System;
using System.Windows.Forms;
using System.Management;
namespace trainingCSharp 
{
public partial class Form1 : Form
public Form1() 
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_DiskDrive");
string info = "";
foreach (ManagementObject obj in searcher.Get())
{
try 
{
info = obj.Properties["SerialNumber"].Value.ToString() + "\n";
}
catch { } 
}
MessageBox.Show(info);
}
}
}
کد کامل بدست آوردن شماره سریال سی پی یو:
using System;
using System.Windows.Forms;
using System.Management;

namespace trainingCSharp
{
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }
 private void Form1_Load(object sender, EventArgs e)
 {
 ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_Processor");
 string info = "";
 foreach (ManagementObject obj in searcher.Get())
 {
 try
 {
 info = obj.Properties["ProcessorId"].Value.ToString() + "\n";
 }
 catch { }
 }
 MessageBox.Show(info);
 }

 }
}
منبع: http://c-sharp.ir
موفق باشید.
ارسال نظر برای این مطلب

کد امنیتی رفرش
درباره ما
تنها وبگاه رسمی موسسه علمی آموزشی نخبگان برنامه نویسی فلوچارت (واحد تهران) زیر نظر وزارت علوم و فناوری
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 5
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 1
  • آی پی امروز : 1
  • آی پی دیروز : 1
  • بازدید امروز : 3
  • باردید دیروز : 2
  • گوگل امروز : 0
  • گوگل دیروز : 1
  • بازدید هفته : 10
  • بازدید ماه : 8
  • بازدید سال : 162
  • بازدید کلی : 5,456