zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    }
  • 相关阅读:
    1.0-springboot的java配置方式
    关于springboot启动的问题.
    关于Springboot整合mybatis启动的问题
    关于IDEA无法引入包和类的情况
    关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
    PostgerSQL 解决锁表
    git 合并冲突后回滚到之前版本
    双重检查锁实现单例
    SpringBoot事务
    SQL性能优化
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/12502324.html
Copyright © 2011-2022 走看看