.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会话到期重定向到登录页面
- asp.net – DotLess的“web”属性究竟做了什么?
- asp.net-mvc – 我需要在哪一层编写代码
- asp.net-mvc – 为id而不是name设置HtmlFieldPrefix
- 如何在回发asp.net按钮之前运行javascript函数?
- asp.net – XmlSerializer可以反序列化为Nullable吗?
- asp.net-mvc – MVC5架构中的Identity 2.0.0建议
- 水平asp.net菜单显示为垂直列表
- 在ASP.NET中设置活动选项卡Ajax TabContainer会导致整个容器
- asp.net-mvc – 在App_Code中的共享@helper中使用@Html
- 如何在asp.net页面上的<%...%>标签内使用c#代码
- asp.net-mvc – 控制器的实例上的HttpContext在A
- asp.net – 如何调用一个特定的UpdatePanel加载后
- asp.net-mvc – SignalR和MVC包
- asp.net-web-api – 自定义模型Binder不从Swagge
- asp.net – 处理单数和多个控制器/路由
- 有没有办法为ASP.Net Web应用程序安装程序创建补
- 使用ASP.Net Web API进行多部分表单POST
- asp.net-web-api – 如何测试我的web api方法
- asp.net-mvc-4 – 如何在asp.net MVC4查看页面中