加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 编程开发 > asp.Net > 正文

.net中如何获取机器硬件信息(防软件复制版)

发布时间:2020-07-16 00:30:44 所属栏目:asp.Net 来源:互联网
导读:最近帮人做个关于软件注册的东东,对方一定要防止大量复制和防止注册码通用,所以就想到用机器的硬件信息进行注册码的生成,所以就牵涉到在获取机器硬件信息。。。在.net环境下(用VC#描述)获取机器的硬件信息,要用到一个类库(System.Management.dll),

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

在.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()

{ string str="";ManagementClass mcHD=new ManagementClass("win32_logicaldisk");ManagementObjectCollection mocHD=mcHD.GetInstances();foreach(ManagementObject m in mocHD){if(m["DeviceID"].ToString()=="C:"){str=m["VolumeSerialNumber"].ToString();break;}} return str;}

4.获取bios和mac地址,这个有点复杂,需要用到NETAPI32.DLL另外补充:5.获取网卡的mac地址 using System.Management; Public string GetNetWorkAdapterID(){ string str=""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach(ManagementObject mo in moc) { if((bool)mo["IPEnabled"] == true) { //Console.WriteLine("MAC addresst{0}", mo["MacAddress"].ToString());str=mo["MacAddress"].ToString(); mo.Dispose(); } } return str;} --------------------------------------------- 如果系统提示找不到名字空间Management, 1. 在Solution Explorer中鼠标右键单击References,选择Add Reference… 2. 此时会弹出Add Reference对话框,选中.NET选项卡。 3. 选中System.Management,点select 4. 点击”OK”。

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读