• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

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

程序混混 2014-02-06 10:53:41
如何取得啊,我想让软件绑定cpu序列号,限制其他电脑使用,谢谢 ,代码 如何写啊 ,是不是的带序列号后,保存到数据库,每次启动软件都对比一下序列号啊,是这个原理吗
...全文
157 点赞 收藏 9
写回复
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
    }
}

回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告