Winform中实现根据CPU和硬盘获取机器码

场景

首先获取设备硬盘的卷标号,然后获取CPU的序列号,将这两个拼接成机器码。

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

新建一个Winform程序,然后添加Management引用

然后进入Form1页面的代码中

首先获取设备硬盘的卷标号代码

public string GetDiskVolumeSerialNumber()        {            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");            ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"d:\"");            disk.Get();            return disk.GetPropertyValue("VolumeSerialNumber").ToString();        }

然后是获取CPU的序列号的代码

public string getCpu()        {            string strCpu = null;            ManagementClass myCpu = new ManagementClass("win32_Processor");            ManagementObjectCollection myCpuConnection = myCpu.GetInstances();            foreach (ManagementObject myObject in myCpuConnection)            {                strCpu = myObject.Properties["Processorid"].Value.ToString();                break;            }            return strCpu;        }

完整页面示例代码

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Microsoft.Win32;using System.Management;namespace GetMCodeByCPUAndYP{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            label1.Text = getCpu() + GetDiskVolumeSerialNumber();//获得24位Cpu和硬盘序列号                    }        //取得设备硬盘的卷标号        public string GetDiskVolumeSerialNumber()        {            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");            ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"d:\"");            disk.Get();            return disk.GetPropertyValue("VolumeSerialNumber").ToString();        }        //获得CPU的序列号        public string getCpu()        {            string strCpu = null;            ManagementClass myCpu = new ManagementClass("win32_Processor");            ManagementObjectCollection myCpuConnection = myCpu.GetInstances();            foreach (ManagementObject myObject in myCpuConnection)            {                strCpu = myObject.Properties["Processorid"].Value.ToString();                break;            }            return strCpu;        }    }}
(0)

相关推荐