.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-mvc – ASP.NET MVC视图模型的最佳做法
- WCF服务与ASP.NET Web Api
- asp.net-mvc – 什么时候使用ViewData而不是ViewModels?
- asp.net – IIS 404自定义错误不能按预期工作
- 在使用ASP.NET会话时是否可以强制请求并发?
- ASP.NET汉字转拼音 - 输入汉字获取其拼音的具体实现
- asp.net – 如何接收JSON作为MVC 5操作方法参数
- asp.net-mvc – 如何将KendoUI DropDownListFor绑定到ViewD
- 是否可以使用ASP.NET ScriptManager来使用Windows FIPS安全
- asp.net-mvc-4 – WepApi控制器是否应该返回viewmodels
- 在asp.net mvc中如何使用usercontrols来显示“岛
- 在asp.net中读取查询字符串而不指定任何页面名称
- asp.net-mvc – 未在ELMAH中记录的错误
- asp.net – Windows应用程序与Web应用程序开发
- 一个简答的Access下的分页asp.net代码
- asp.net-mvc – ASP.NET MVC可以生成具有小写名称
- asp.net-mvc-3 – 用于在ASP.NET MVC3中使用Grid
- asp.net-mvc – ASP.NET MVC:部分知道它是否是从
- asp.net – 在Azure网站上启用gzip压缩
- asp.net-mvc-3 – MVC 3 $.ajax – 响应似乎是从