获取windows硬件信息

有以下四种方式:

1、通过windows SDK,读取注册表、API方式实现,但没找到读取CPU和硬盘温度的方法。

2、通过wmi COM组件实现,可以读取CPU温度,但只是开机时Bios的温度,一直不变。

3、通过cpuid指令实现,可以获取cpu相关信息,但获取温度需要读MSR寄存器,无权限。

4、驱动方式:通过winio或winring0

 

读注册表获取信息示例:
获取HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0子键中获取ProcessorNameString的键值。该注册表子键存储了当前计算机的处理器信息,如CPU名称、标识和厂商,主频等。
[cpp] view plain copy

    void CSystemHardwareInfoDlg::OnButton1()   
    {  
        CString strPath="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0";  
        CRegKey regKey;  
        LONG lResult;  
        lResult=regKey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS);  
      
        //打开注册表主键     
        if (lResult!=ERROR_SUCCESS)//读取键值不成功     
        {    
            AfxMessageBox("错误:无法查询有关的注册表信息");    
            return;    
        }    
        char chCPUName[50];    
        DWORD dwSize=50;    
        regKey.QueryValue(chCPUName,"ProcessorNameString",&dwSize);    
        //获取RegisteredOwner的值     
        m_strCPUName=chCPUName;    
        UpdateData(FALSE);    
        regKey.Close();//关闭注册表  
          
    } 
标识和厂商,主频:identifier,vendoridentifier, ~Mhz

BIOS信息所在注册表路径:HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\

显卡BIOS:videobiosversion,videobiosdate

系统bios:systembiosversion,systembiosdate

API获取CPU个数:


VOID GetSystemInfo(LPSYSTEM_INFO lpSystemInfo)

lpSystemInfo:指向存储当前计算机信息结构的指针

功能:获取当前计算机的信息
[cpp] view plain copy

    //SYSTEM_INFO结构包含有关当前计算机系统的信息。包括处理器类型,页面大小,内存地址,和OEM标识符。   
      
    typedef struct _SYSTEM_INFO {  
      union {  
      DWORD dwOemId;        OemId过时的,不使用  
      struct {  
        WORD wProcessorArchitecture;    处理器架构  
        WORD wReserved;  
      };  
    };  
      DWORD dwPageSize;        页面大小  
      LPVOID lpMinimumApplicationAddress;   应用程序最小地址  
      LPVOID lpMaximumApplicationAddress;   应用程序最大地址  
      DWORD dwActiveProcessorMask;     处理器掩码  
      DWORD dwNumberOfProcessors;     处理器数量  
      DWORD dwProcessorType;      处理器类型  
      DWORD dwAllocationGranularity;    虚拟内存分配粒度  
      WORD wProcessorLevel;       处理器级别  
      WORD wProcessorRevision;      处理器版本  
    } SYSTEM_INFO, *LPSYSTEM_INFO;  


 
[cpp] view plain copy

    void CSystemHardwareInfoDlg::OnButton5()   
    {  
      
        SYSTEM_INFO sysInfo;  
        GetSystemInfo(&sysInfo);  
        m_dwNum=sysInfo.dwNumberOfProcessors;  
        UpdateData(FALSE);  
    }  

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值