C/C++应用--Window下获取硬件信息(CPU, 硬盘,网卡等)

本文介绍了如何在Windows系统中使用C/C++编程获取硬件信息,包括CPU、硬盘和网卡等关键硬件的详细数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、头文件如下:

#include <Windows.h>
#include <string>
#include <iostream>
#include <winnt.h>
#include <tchar.h>  
#include <IPHlpApi.h>
#pragma comment(lib,"ws2_32.lib") 
#pragma comment(lib,"Advapi32.lib") 
#pragma comment(lib, "Iphlpapi.lib")
using namespace std;

// ***** global macros ***** //
#define  GBYTES  1073741824  
#define  MBYTES  1048576  
#define  KBYTES  1024  
#define  DKBYTES 1024.0  

class CSysInfo
{
public:
    CSysInfo();
    ~CSysInfo();

public:
    const std::string GetOSVersion();
    void SafeGetNativeSystemInfo(LPSYSTEM_INFO lpSystemInfo);
    const std::string GetCPUInfo();
    const std::string GetMemoryStatus();

    void GetNetCardAndIPInfo(std::string &adapter_info, std::string &MAC_address, std::string &IP);
    const std::string GetComputerUserName();
    BOOL GetHardDiskInfo(LPTSTR pModelNo, LPTSTR pSerialNo);
    void ToLittleEndian(PUSHORT pWords, int nFirstIndex, int nLastIndex, LPTSTR pBuf);

};

二、cpp如下:

#include "SysInfo.h"



CSysInfo::CSysInfo()
{
}


CSysInfo::~CSysInfo()
{
}

const std::string CSysInfo::GetOSVersion()
{
    std::string os_version("");
    SYSTEM_INFO system_info;
    memset(&system_info, 0, sizeof(SYSTEM_INFO));
    GetSystemInfo(&system_info);
    OSVERSIONINFOEX os;
    os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if (GetVersionEx((OSVERSIONINFO *)&os))
    {
        switch (os.dwMajorVersion) {
        case 4:
            //1996年7月发布 
            switch (os.dwMinorVersion) {
            case 0:
                if (os.dwPlatformId == VER_PLATFORM_WIN32_NT)
                    os_version = "Microsoft Windows NT 4.0 ";
                else if (os.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
                    os_version = "Microsoft Windows 95 ";
                break;
            case 10:
                os_version = "Microsoft Windows 98 ";
                break;
            case 90:
                os_version = "Microsoft Windows Me ";
                break;
            }
            break;
        case 5:
            switch (os.dwMinorVersion) {
                //1999年12月发布 
            case 0:
                os_version = "Microsoft Windows 2000 ";
                if (os.wSuiteMask == VER_SUITE_ENTERPRISE)
                    os_version.append("Advanced Server ");
                break;
                //
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值