最近帮人做个关于软件注册的东东,对方一定要防止大量复制和防止注册码通用,所以就想到用机器的硬件信息进行注册码的生成,所以就牵涉到在获取机器硬件信息。。。
在.net环境下(用VC#描述)获取机器的硬件信息,要用到一个类库(System.Management.dll),在解决方案资源管理器中添加System.Management 即可
我们可以将该程序编译成.dll文件,便于以后调用;
在程序代码中进行引用 using System.Management;
具体 代码为:
1.获取机器名:
public string GetHostName()
{
return System.Net.Dns.GetHostName();
} 
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;
}
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
本文详细介绍了在.NET环境下如何利用System.Management.dll库获取机器硬件信息(如机器名、CPU编号、主硬盘编号),进而生成独特且难以复制的注册码,以增强软件的安全性和注册码的有效性。
1115

被折叠的 条评论
为什么被折叠?



