c++ 获取cpu 主板 硬盘 序列号
时间: 2023-08-08 12:10:04 浏览: 663
获取计算机硬件序列号是一个敏感的操作,需要管理员权限。以下是获取CPU、主板、硬盘序列号的代码示例,仅供参考:
```c++
#include <iostream>
#include <Windows.h>
int main() {
// 获取CPU序列号
char cpu_id[128];
__cpuid(0x00000001, 0x00000000, reinterpret_cast<unsigned int*>(&cpu_id[0]),
reinterpret_cast<unsigned int*>(&cpu_id[4]), reinterpret_cast<unsigned int*>(&cpu_id[8]),
reinterpret_cast<unsigned int*>(&cpu_id[12]));
std::cout << "CPU ID: " << cpu_id << std::endl;
// 获取主板序列号
char board_id[128];
DWORD buf_len = 128;
GetComputerNameExA(ComputerNamePhysicalDnsHostname, board_id, &buf_len);
std::cout << "Board ID: " << board_id << std::endl;
// 获取硬盘序列号
char hdd_id[128];
buf_len = 128;
GetVolumeInformationA("C:\\", nullptr, 0, reinterpret_cast<LPDWORD>(&hdd_id[0]),
nullptr, nullptr, nullptr, 0);
std::cout << "HDD ID: " << hdd_id << std::endl;
return 0;
}
```
这段代码使用了Windows API函数来获取CPU、主板、硬盘序列号。其中,获取CPU序列号使用了`__cpuid`函数,获取主板序列号使用了`GetComputerNameExA`函数,获取硬盘序列号使用了`GetVolumeInformationA`函数。需要注意的是,这些函数的参数和返回值的含义需要仔细阅读对应的API文档。此外,不同的系统和硬件可能提供不同的API函数或方法来获取硬件序列号。
阅读全文