文档章节

C#获取cpu序列号 硬盘ID 网卡硬地址以及操作注册表

深圳大道
 深圳大道
发布于 2016/12/29 15:39
字数 371
阅读 23
收藏 0
#region 获取cpu序列号 硬盘ID 网卡硬地址
        /**/
        ///  <summary> 
        /// 获取cpu序列号   
        ///  </summary> 
        ///  <returns>string </returns> 
        public static string GetCpuInfo()
        {
            string cpuInfo = "";
            ManagementClass cimobject = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = cimobject.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
            }
            return cpuInfo.ToString();
        }

        /**////  <summary> 
        /// 获取硬盘ID   
        ///  </summary> 
        ///  <returns>string </returns> 
        public static string GetHDid()
        {
            string HDid = "";
            ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
            ManagementObjectCollection moc1 = cimobject1.GetInstances();
            foreach (ManagementObject mo in moc1)
            {
                HDid = (string)mo.Properties["Model"].Value;
            }
            return HDid.ToString();
        }

        /**////  <summary> 
        /// 获取网卡硬件地址 
        ///  </summary> 
        ///  <returns>string </returns> 
        public static string GetMoAddress()
        {
            string MoAddress = "";
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc2 = mc.GetInstances();
            foreach (ManagementObject mo in moc2)
            {
                if ((bool)mo["IPEnabled"] == true)
                    MoAddress = mo["MacAddress"].ToString();
                mo.Dispose();
            }
            return MoAddress.ToString();
        }
        #endregion

        #region 操作注册表
        /// <summary>
        /// 读取指定名称的注册表的值
        /// </summary>
        /// <param name="name">注册表值</param>
        /// <returns></returns>
        private static string GetRegistData(string name)
        {
            string registData;
            RegistryKey hkml = Registry.LocalMachine;
            RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
            RegistryKey aimdir = software.OpenSubKey("CSharpCode", true);
            registData = aimdir.GetValue(name).ToString();
            return registData;
        }

        /// <summary>
        /// 注册表中写数据 
        /// </summary>
        /// <param name="name">注册表</param>
        /// <param name="tovalue">值</param>
        private void WTRegedit(string name, string tovalue)
        {
            RegistryKey hklm = Registry.LocalMachine;
            RegistryKey software = hklm.OpenSubKey("SOFTWARE", true);
            RegistryKey aimdir = software.CreateSubKey("CSharpCode");
            aimdir.SetValue(name, tovalue);
        }

        /// <summary>
        /// .删除注册表中指定的注册表项
        /// </summary>
        /// <param name="name">注册表</param>
        private void DeleteRegist(string name)
        {
            string[] aimnames;
            RegistryKey hkml = Registry.LocalMachine;
            RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
            RegistryKey aimdir = software.OpenSubKey("CSharpCode", true);
            aimnames = aimdir.GetSubKeyNames();
            foreach (string aimKey in aimnames)
            {
                if (aimKey == name)
                    aimdir.DeleteSubKeyTree(name);
            }
        }

        /// <summary>
        /// 判断指定注册表项是否存在
        /// </summary>
        /// <param name="name">注册表</param>
        /// <returns></returns>
        private static bool IsRegeditExit(string name)
        {
            bool _exit = false;
            string[] subkeyNames;
            RegistryKey hkml = Registry.LocalMachine;
            RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
            subkeyNames = software.GetSubKeyNames();
            foreach (string keyName in subkeyNames)
            {
                if (keyName == name)
                {
                    _exit = true;
                    return _exit;
                }
            }
            return _exit;
        } 
        #endregion

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/8682295

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
C#/VB.NET 获取电脑属性(硬盘ID、硬盘容量、Cpu序列号、MAC地址、系统类型)

在开发过程中,经常需要获取电脑的一些属性,如获取硬盘ID/CPU序列号/MAC地址作为来加密字符串。 1、硬盘 在我查看网上一些文档时,发现很多人对硬盘序列号很模糊~ 什么叫硬盘序列号?指的是...

@winter
2016/11/03
0
0
Linux中硬件服务器信息查询

机器基本信息查询 dmidecode | grep "Product Name" ###查看机器型号 hostname ###查看主机名 dmidecode -t bios ###查看bios信息 system、baseboard、chassis、processor、memory、cache、c......

飞奔的骆驼
2017/06/27
0
0
C#获取CPU序列号/网卡MAC地址/硬盘序列号

C#获取CPU序列号代码 windows 管理规范 (wmi) 是可伸缩的系统管理结构,它采用一个统一的、基于标准的、可扩展的面向对象接口。wmi 为您提供与系统管理信息和基础 wmi api 交互的标准方法。w...

老朱教授
2017/11/28
0
0
C#实现光盘做启动盘

一 :编程思想 1、创建启动盘 插入要创建的启动盘,程序自动检测光驱中光盘,利用WMI(Windows管理架构:Windows Management Instrumentation)读取该光盘的序列号(具有唯一性),把该序列号...

晨曦之光
2012/03/09
121
0
Hook 系统API 修改部分硬件信息

Hook 系统API 修改部分硬件信息 支持win xp win7 win8 win10 32-64位 开发语言不限,要求提供源码和说明文档。 通过外部程序调用hook的程序修改硬件信息,具体信息如下 cpuid,计算机名,硬盘...

北京java
2016/06/08
3
0

没有更多内容

加载失败,请刷新页面

加载更多

recv send 的 MSG_DONTWAIT 、 MSG_WAITALL 参数

基本概念: 阻塞IO:: socket 的阻塞模式意味着必须要做完IO 操作(包括错误)才会返回。 非阻塞IO:: 非阻塞模式下无论操作是否完成都会立刻返回,需要通过其他方式来判断具体操作是否成功。 ...

shzwork
24分钟前
2
0
怎么给开源项目提PR?

1. Fork 你想要提交 PR 的项目 2. 下载到本地 相关步骤如下: 在你需要的文件夹下面,右键使用 git bash 命令,打开 git 命令框 执行如下指令可将项目代码下载到当前目录 1代码仓库地址为示例...

xiaomin0322
27分钟前
2
0
浅复制与深复制概念

1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制...

GodIsCj
27分钟前
1
0
如何在工作中快速成长?致工程师的10个简单技巧

阿里妹导读:阿里有句非常经典的土话,“今天的最好表现,是明天的最低要求。”如何挖掘潜能、发现更好的自己?今天,阿里巴巴高级无线开发专家江建明将认知升级的方法总结出来,帮助你获得快...

阿里云官方博客
50分钟前
2
0
如何 SSH 到 Linux 服务器里的特定目录及执行命令?

这种操作对于新手来讲特别常见,良许之前也是这样。在本文,老司机将带你来进行更高效的操作,只需一步即可达到你想要的效果。 而且,不仅仅是实现快速进入到 Linux 服务器特定的目录,还可以...

架构师springboot
54分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部