加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 21:11:52 所属栏目: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”。

(编辑:李大同)

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

    推荐文章
      热点阅读