windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息
作者:野牛程序员:2023-07-18 08:00:36 C++阅读 2604
在 Windows 平台下,你可以使用 C++ 来获取系统版本、网卡、内存、CPU、硬盘和显卡信息。以下是一些示例代码,用于演示如何获取这些信息。
获取系统版本:
#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; }
获取网卡信息:
#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; }
获取内存信息:
#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; }
获取CPU信息:
#include <iostream> #include <windows.h> int main() { SYSTEM_INFO systemInfo; GetSystemInfo(&systemInfo); std::cout << "Number of Processors: " << systemInfo.dwNumberOfProcessors << std::endl; return 0; }
获取硬盘信息:
#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; }
获取显卡信息:
#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

- 上一篇:c++如何获取分辨率和系统的可用内存和内存大小
- 下一篇:c++读写内存