# โค้ด c# หรับดึงค่าต่างๆ ของ hardisk บนเครื่อง pc เช่น serial ของ hd
# ค่าจะมีอยู่ 2 แบบคือ
1. Get the firmware serial number (which never changes on reformatting)
2. Get the volume serial number - which changes with every format:
# แต่ ^^' เราสามารถหาโปรแกรมเปลี่ยนค่า serial ของ hardisk ได้เหมือนเปลี่ยน mac อ่ะ
# ส่วนโค้ดด้านล่างมาจาก codeproject.com จะเป็นแบบ firmware serial
# ซึ่งคิดว่าพวกโปรแกรม karaoke ใช้ค่านี้สำหรับสร้าง license key นะ ^^' ใช่ป่าวหว่า
References:
- http://www.codeproject.com/KB/cs/hard_disk_serialno.aspx
- http://vbcity.com/forums/topic.asp?tid=98173&highlight=wmi|hard|disk
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Management;
using System.Collections;
public class ....
{
public static string GetInfoHD() // support xp, vista
{
ArrayList hdCollection = new ArrayList();
ManagementObjectSearcher searcher = new
ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject wmi_HD in searcher.Get())
{
HardDrive hd = new HardDrive();
hd.Model = wmi_HD["Model"].ToString();
hd.Type = wmi_HD["InterfaceType"].ToString();
hdCollection.Add(hd);
}
searcher = new
ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
int i = 0;
foreach (ManagementObject wmi_HD in searcher.Get())
{
// get the hard drive from collection
// using index
if (i + 1 > hdCollection.Count) break;
HardDrive hd = (HardDrive)hdCollection[i];
// get the hardware serial no.
if (wmi_HD["SerialNumber"] == null)
hd.SerialNo = "None";
else
hd.SerialNo = wmi_HD["SerialNumber"].ToString();
++i;
}
// Display available hard drives
foreach (HardDrive hd in hdCollection)
{
Console.WriteLine("Model\t\t: " + hd.Model);
Console.WriteLine("Type\t\t: " + hd.Type);
Console.WriteLine("Serial No.\t: " + hd.SerialNo);
Console.WriteLine();
}
return "";
}
class HardDrive
{
private string model = null;
private string type = null;
private string serialNo = null;
public string Model
{
get { return model; }
set { model = value; }
}
public string Type
{
get { return type; }
set { type = value; }
}
public string SerialNo
{
get { return serialNo; }
set { serialNo = value; }
}
}
}
No comments:
Post a Comment