.net中如何获取机器硬件信息(防软件复制版)
|
最近帮人做个关于软件注册的东东,对方一定要防止大量复制和防止注册码通用,所以就想到用机器的硬件信息进行注册码的生成,所以就牵涉到在获取机器硬件信息。。。 在.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”。 (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何在C#2.0中的Web.config中加密用户名和密码
- ASP.net MVC ValidationSummary总是被渲染
- asp.net core 实现一个简单的仓储的方法
- asp.net – System.Security.SecurityException?
- asp.net – Dropzone没有绑定到模型
- 实体框架 – 实体框架核心更新许多对许多
- 如何在asp.net c#中计算网站访问者数量
- asp.net-mvc – 在ASP.NET MVC 2中模板化Html.DisplayFor()
- ASP.NET MembershipProvider加密/解密
- ADO.NET实用经验 转载
