最近帮人做个关于软件注册的东东,对方一定要防止大量复制和防止注册码通用,所以就想到用机器的硬件信息进行注册码的生成,所以就牵涉到在获取机器硬件信息。。。
在.net环境下(用VC#描述)获取机器的硬件信息,要用到一个类库(System.Management.dll),在解决方案资源管理器中添加System.Management 即可
我们可以将该程序编译成.dll文件,便于以后调用;
在程序代码中进行引用 using System.Management;
具体 代码为:
1.获取机器名:
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地址,这个有点复杂,需要用到NETAPI32.DLL