windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息
作者:野牛程序员:2023-07-18 08:00:36 C++阅读 2772
在 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++读写内存
