当前位置:首页 C++ > 正文

windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息

作者:野牛程序员:2023-07-18 08:00:36 C++阅读 2604

在 Windows 平台下,你可以使用 C++ 来获取系统版本、网卡、内存、CPU、硬盘和显卡信息。以下是一些示例代码,用于演示如何获取这些信息。

  1. 获取系统版本:

#include <iostream>
#include <windows.h>

int main() {
    OSVERSIONINFOEX osVersionInfo;
    osVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    GetVersionEx((OSVERSIONINFO*)&osVersionInfo);

    std::cout << "Operating System Version: " << osVersionInfo.dwMajorVersion << "." << osVersionInfo.dwMinorVersion << std::endl;

    return 0;
}
  1. 获取网卡信息:

#include <iostream>
#include <windows.h>
#include <iphlpapi.h>
#pragma comment(lib, "iphlpapi.lib")

int main() {
    IP_ADAPTER_INFO adapterInfo[16];
    DWORD bufferSize = sizeof(adapterInfo);

    if (GetAdaptersInfo(adapterInfo, &bufferSize) == ERROR_SUCCESS) {
        IP_ADAPTER_INFO* adapter = adapterInfo;
        while (adapter != NULL) {
            std::cout << "Adapter Name: " << adapter->AdapterName << std::endl;
            std::cout << "IP Address: " << adapter->IpAddressList.IpAddress.String << std::endl;
            std::cout << "MAC Address: ";
            for (UINT i = 0; i < adapter->AddressLength; i++) {
                if (i == 0)
                    std::cout << std::hex << (int)adapter->Address[i];
                else
                    std::cout << "-" << std::hex << (int)adapter->Address[i];
            }
            std::cout << std::endl;

            adapter = adapter->Next;
        }
    }

    return 0;
}
  1. 获取内存信息:

#include <iostream>
#include <windows.h>

int main() {
    MEMORYSTATUSEX memoryStatus;
    memoryStatus.dwLength = sizeof(memoryStatus);
    GlobalMemoryStatusEx(&memoryStatus);

    std::cout << "Total Physical Memory: " << memoryStatus.ullTotalPhys / (1024 * 1024) << " MB" << std::endl;

    return 0;
}
  1. 获取CPU信息:

#include <iostream>
#include <windows.h>

int main() {
    SYSTEM_INFO systemInfo;
    GetSystemInfo(&systemInfo);

    std::cout << "Number of Processors: " << systemInfo.dwNumberOfProcessors << std::endl;

    return 0;
}
  1. 获取硬盘信息:

#include <iostream>
#include <windows.h>

int main() {
    DWORD serialNumber;
    GetVolumeInformation("C:\\\\", NULL, 0, &serialNumber, NULL, NULL, NULL, 0);

    std::cout << "Hard Disk Serial Number: " << serialNumber << std::endl;

    return 0;
}
  1. 获取显卡信息:

#include <iostream>
#include <windows.h>
#include <dxdiag.h>
#pragma comment(lib, "dxguid.lib")

int main() {
    IDxDiagProvider* pDxDiagProvider;
    CoInitialize(NULL);
    CoCreateInstance(CLSID_DxDiagProvider, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pDxDiagProvider));

    IDxDiagContainer* pDxDiagRoot;
    pDxDiagProvider->GetRootContainer(&pDxDiagRoot);

    IDxDiagContainer* pDisplayDevicesContainer;
    pDxDiagRoot->GetChildContainer(L"DxDiag_DisplayDevices", &pDisplayDevicesContainer);

    VARIANT var;
    VariantInit(&var);
    pDisplayDevicesContainer->GetProp(L"szDescription", &var);
    std::wcout << "Display Card: " << var.bstrVal << std::endl;

    pDisplayDevicesContainer->Release();
    pDxDiagRoot->Release();
    pDxDiagProvider->Release();
    CoUninitialize();

    return 0;
}

请注意,这些代码仅提供了基本的信息获取方法,并且可能需要包含特定的头文件和链接相应的库文件才能正常工作。你可能需要根据自己的开发环境进行适当的调整。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击