最近帮人做个关于软件注册的东东,对方一定要防止大量复制和防止注册码通用,所以就想到用机器的硬件信息进行注册码的生成,所以就牵涉到在获取机器硬件信息。。。
在.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