WMI (Windows Manegment Instrument)
using System;
using System.Management;
using System.Windows.Forms;
namespace WMISample
{
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_DiskDrive instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("Partitions: {0}", queryObj["Partitions"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}
یا کلاس زیر
using System;
using System.Collections;
using System.Management;
namespace MyNameSpace
{
class HDDInfo
{
publicstring Model = null;
publicstring Type = null;
publicstring SerialNo = null;
}
publicclass Class1
{
public ArrayList GetHDDInfo(string[] args)
{
ArrayList arHDD = new ArrayList();
System.Management.ManagementObjectSearcher mngOject = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach(ManagementObject wmi_HD in mngOject.Get())
{
HDDInfo hd = new HDDInfo();
hd.Model = wmi_HD["Model"].ToString();
hd.Type = wmi_HD["InterfaceType"].ToString();
arHDD.Add(hd);
}
mngOject = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
int i = 0;
foreach(ManagementObject wmi_HD in mngOject.Get())
{
HDDInfo hd = (HDDInfo)arHDD[i];
if (wmi_HD["SerialNumber"] == null)
hd.SerialNo = "None";
else
hd.SerialNo = wmi_HD["SerialNumber"].ToString();
++i;
}
return arHDD;
}
}
}
یا لینکهای زیر رو ببین
http://www.codeproject.com/csharp/ha...k_serialno.asp
https://barnamenevis.org/attach...2&d=1180708993
http://www.codeproject.com/KB/system...formation.aspx
یه مقدار سرچ کنی بیشتر هم گیرت میاد، امیدوارم کارت راه افتاده باشه .