1 class HardDrive 2 { 3 private string model = null; 4 private string type = null; 5 private string serialNo = null; 6 7 public string Model 8 { 9 get { return model; } 10 set { model = value; } 11 } 12 13 public string Type 14 { 15 get { return type; } 16 set { type = value; } 17 } 18 19 public string SerialNo 20 { 21 get { return serialNo; } 22 set { serialNo = value; } 23 } 24 } 25 26 public static string GetDiskSerialNumber() 27 { 28 string DiskID=""; 29 ArrayList hdCollection = new ArrayList(); 30 31 ManagementObjectSearcher searcher = new 32 ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive"); 33 34 foreach (ManagementObject wmi_HD in searcher.Get()) 35 { 36 HardDrive hd = new HardDrive(); 37 hd.Model = wmi_HD["Model"].ToString(); 38 hd.Type = wmi_HD["InterfaceType"].ToString(); 39 40 hdCollection.Add(hd); 41 } 42 43 searcher = new 44 ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); 45 46 int i = 0; 47 foreach (ManagementObject wmi_HD in searcher.Get()) 48 { 49 // get the hard drive from collection 50 // using index 51 HardDrive hd = (HardDrive)hdCollection[i]; 52 53 // get the hardware serial no. 54 if (wmi_HD["SerialNumber"] == null) 55 hd.SerialNo = "None"; 56 else 57 hd.SerialNo = wmi_HD["SerialNumber"].ToString(); 58 59 ++i; 60 } 61 62 // Display available hard drives 63 foreach (HardDrive hd in hdCollection) 64 { 65 //Console.WriteLine("Model\t\t: " + hd.Model); 66 //Console.WriteLine("Type\t\t: " + hd.Type); 67 //Console.WriteLine("Serial No.\t: " + hd.SerialNo); 68 //Console.WriteLine(); 69 70 DiskID=DiskID+ hd.SerialNo.Trim();//可能有多个硬盘,所以ID长度不一样 71 72 } 73 74 return DiskID; 75 }