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 }