asp.net vb语言,如何取得电脑的cpu序列号

程序混混 2014-02-06 10:53:41
如何取得啊,我想让软件绑定cpu序列号,限制其他电脑使用,谢谢 ,代码 如何写啊 ,是不是的带序列号后,保存到数据库,每次启动软件都对比一下序列号啊,是这个原理吗
...全文
201 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyilin888 2014-02-09
  • 打赏
  • 举报
回复
wmi
代码之城 2014-02-09
  • 打赏
  • 举报
回复
原理是这个的,取得后 对比一下
哈尔滨MwSoft 2014-02-08
  • 打赏
  • 举报
回复
MARK 获取CPU 各种信息!
huaneramn 2014-02-07
  • 打赏
  • 举报
回复
问错地方 了,,,,,,,,,,,,
devmiao 2014-02-06
  • 打赏
  • 举报
回复
只有Intel Pentium III处理器有序列号。(Serial Number) CPUID不是序列号。相同批次的CPU,CPUID相同,也就是说有成千上万的处理器和你的一样,所以没法“绑定电脑”。
程序混混 2014-02-06
  • 打赏
  • 举报
回复
你这个是取得了,但是如何判断啊,绑定电脑的如何分析啊
本拉灯 2014-02-06
  • 打赏
  • 举报
回复
引用 2 楼 wyj198282 的回复:
你的代码 是取得了序列号,还有什么功能啊,可以解释吗
注释不都有写么。
程序混混 2014-02-06
  • 打赏
  • 举报
回复
你的代码 是取得了序列号,还有什么功能啊,可以解释吗
本拉灯 2014-02-06
  • 打赏
  • 举报
回复


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;

namespace ComputerMachineInfo.Common
{
    public class CPUInfo
    {
        #region 属性
        #region CPU名称
        string strCPUName = string.Empty;

        public string CPUName
        {
            get { return strCPUName; }
            set { strCPUName = value; }
        }
        #endregion

        #region CPU序列号
        string strCPUID = string.Empty;

        public string CPUID
        {
            get { return strCPUID; }
            set { strCPUID = value; }
        }
        #endregion

        #region CPU个数
        int nCPUCount = 0;

        public int CPUCount
        {
            get { return nCPUCount; }
            set { nCPUCount = value; }
        }
        #endregion

        #region CPU制造商
        string strCPUManufacturer = string.Empty;

        public string CPUManufacturer
        {
            get { return strCPUManufacturer; }
            set { strCPUManufacturer = value; }
        }
        #endregion

        #region 当前时钟频率
        string strCPUCurrentClockSpeed = string.Empty;

        public string CPUCurrentClockSpeed
        {
            get { return strCPUCurrentClockSpeed; }
            set { strCPUCurrentClockSpeed = value; }
        }
        #endregion

        #region 最大时钟频率
        string strCPUMaxClockSpeed = string.Empty;

        public string CPUMaxClockSpeed
        {
            get { return strCPUMaxClockSpeed; }
            set { strCPUMaxClockSpeed = value; }
        }
        #endregion

        #region 外部频率
        string strCPUExtClock = string.Empty;

        public string CPUExtClock
        {
            get { return strCPUExtClock; }
            set { strCPUExtClock = value; }
        }
        #endregion

        #region 当前电压
        string strCPUCurrentVoltage = string.Empty;

        public string CPUCurrentVoltage
        {
            get { return strCPUCurrentVoltage; }
            set { strCPUCurrentVoltage = value; }
        }
        #endregion

        #region 二级缓存
        string strCPUL2CacheSize = string.Empty;

        public string CPUL2CacheSize
        {
            get { return strCPUL2CacheSize; }
            set { strCPUL2CacheSize = value; }
        }
        #endregion

        #region 数据带宽
        string strCPUDataWidth = string.Empty;

        public string CPUDataWidth
        {
            get { return strCPUDataWidth; }
            set { strCPUDataWidth = value; }
        }
        #endregion

        #region 地址带宽
        string strCPUAddressWidth = string.Empty;

        public string CPUAddressWidth
        {
            get { return strCPUAddressWidth; }
            set { strCPUAddressWidth = value; }
        }
        #endregion

        #region 使用百分比
        float fCPUUsedPercent;

        public float CPUUsedPercent
        {
            get { return fCPUUsedPercent; }
            set { fCPUUsedPercent = value; }
        }
        #endregion

        #region CPU温度
        double strCPUTemperature;

        public double CPUTemperature
        {
            get { return strCPUTemperature; }
            set { strCPUTemperature = value; }
        }
        #endregion
        #endregion

        #region 构造函数
        public CPUInfo()
        {
            //GetCPUInfo();
        }
        #endregion

        #region GetCPUInfo
        public void GetCPUInfo()
        {
            #region 使用百分比
            GetCPULoadPercentage();
            #endregion

            CPUCount = Environment.ProcessorCount;  //CPU个数

            GetCPUCurrentTemperature();

            //实例化一个ManagementClass类,并将Win32_Processor作为参数传递进去,
            //这样就可以查询Win32_Processor这个类里面的一些信息了。
            ManagementClass mClass = new ManagementClass("Win32_Processor");

            //获取Win32_Processor这个类的所有实例
            ManagementObjectCollection moCollection = mClass.GetInstances();

            //对Win32_Processor这个类进行遍历
            foreach (ManagementObject mObject in moCollection)
            {
                CPUName = mObject["Name"].ToString();  //获取CPU名称
                CPUID = mObject["ProcessorId"].ToString();  //获取 CPU ID
                CPUManufacturer = mObject["Manufacturer"].ToString();  //获取CPU制造商
                CPUCurrentClockSpeed = mObject["CurrentClockSpeed"].ToString();  //获取当前时钟频率
                CPUMaxClockSpeed = mObject["MaxClockSpeed"].ToString();  //获取最大时钟频率
                CPUExtClock = mObject["ExtClock"].ToString();  //获取外部频率
                CPUCurrentVoltage = mObject["CurrentVoltage"].ToString();  //获取当前电压
                CPUL2CacheSize = mObject["L2CacheSize"].ToString();  //获取二级缓存
                CPUDataWidth = mObject["DataWidth"].ToString();  //获取数据带宽
                CPUAddressWidth = mObject["AddressWidth"].ToString();  //获取地址带宽
            }

        }

        public void GetCPUCurrentTemperature()
        {
            ManagementObjectSearcher mos = new ManagementObjectSearcher(@"root\wmi", @"select * from MSAcpi_ThermalZoneTemperature");
            foreach (ManagementObject mo in mos.Get())
            {
                CPUTemperature = Convert.ToDouble(Convert.ToDouble(mo["CurrentTemperature"].ToString()) - 2732) / 10;
            }
        }

        public void GetCPULoadPercentage()
        {
            ManagementObjectSearcher searcher =
                    new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_Processor");

            foreach (ManagementObject queryObj in searcher.Get())
            {
                CPUUsedPercent = float.Parse(queryObj["LoadPercentage"].ToString());
            }
        }
        #endregion
    }
}

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧