最近幫人做個關(guān)于軟件注冊的東東,對方一定要防止大量復(fù)制和防止注冊碼通用,所以就想到用機(jī)器的硬件信息進(jìn)行注冊碼的生成,所以就牽涉到在獲取機(jī)器硬件信息。。。
在.net環(huán)境下(用VC#描述)獲取機(jī)器的硬件信息,要用到一個類庫(System.Management.dll),在解決方案資源管理器中添加System.Management 即可
我們可以將該程序編譯成.dll文件,便于以后調(diào)用;
在程序代碼中進(jìn)行引用 using System.Management;
具體 代碼為:
1.獲取機(jī)器名:
public string GetHostName()
{
return System.Net.Dns.GetHostName();
}
2.獲取CPU編號
public string GetCpuId()
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
String strCpuID = null ;
foreach( ManagementObject mo in moc )
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;
}
3.獲取主硬盤編號
public string GetMainHardDiskId()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
String strHardDiskID = null ;
foreach(ManagementObject mo in searcher.Get())
{
strHardDiskID = mo["SerialNumber"].ToString().Trim();
break;
}
return strHardDiskID ;
}
4.獲取bios和mac地址,這個有點(diǎn)復(fù)雜,需要用到NETAPI32.DLL