递归火山软件开发平台
标题:
谁帮我用C++写一个例子 付费
[打印本页]
作者:
CXKJ
时间:
2024-2-7 11:40
标题:
谁帮我用C++写一个例子 付费
取BIOS信息 制造商 序列号 发布日期 版本
作者:
xuezhq
时间:
2024-2-7 12:15
这不是挺简单的吗?
作者:
CXKJ
时间:
2024-2-7 13:06
xuezhq 发表于 2024-2-7 12:15
这不是挺简单的吗?
关键我不会呀Q332452295
作者:
shuimiao
时间:
2024-2-7 13:23
火山貌似已经有了官方库获取硬件信息,下载最新火山找找
作者:
CXKJ
时间:
2024-2-7 13:49
shuimiao 发表于 2024-2-7 13:23
火山貌似已经有了官方库获取硬件信息,下载最新火山找找
我要c++写的哦
作者:
fengshangren
时间:
2024-2-7 16:38
火山的源码就是c++
作者:
承易
时间:
2024-2-7 19:12
#include <iostream>
#include <windows.h>
#include <string>
int main() {
DWORD bufferSize = 0;
BYTE* buffer = nullptr;
DWORD dataType = 0;
std::string biosInfo;
// 获取缓冲区大小
if (GetSystemFirmwareTable(FirmwareTableProviderSignature, FirmwareTableID, 0, &bufferSize) != ERROR_INSUFFICIENT_BUFFER) {
std::cerr << "无法获取缓冲区大小" << std::endl;
return 1;
}
// 分配缓冲区
buffer = new BYTE[bufferSize];
// 获取BIOS信息
if (GetSystemFirmwareTable(FirmwareTableProviderSignature, FirmwareTableID, buffer, &bufferSize) == ERROR_SUCCESS) {
// 解析BIOS信息
for (DWORD i = 0; i < bufferSize; i++) {
switch (dataType) {
case 0: // 制造商
if (buffer[i] == 0) {
dataType = 1;
} else {
biosInfo += static_cast<char>(buffer[i]);
}
break;
case 1: // 序列号
if (buffer[i] == 0) {
dataType = 2;
} else {
biosInfo += static_cast<char>(buffer[i]);
}
break;
case 2: // 发布日期
if (buffer[i] == 0) {
dataType = 3;
} else {
biosInfo += static_cast<char>(buffer[i]);
}
break;
case 3: // 版本
if (buffer[i] == 0) {
dataType = 4;
} else {
biosInfo += static_cast<char>(buffer[i]);
}
break;
}
}
} else {
std::cerr << "无法获取BIOS信息" << std::endl;
delete[] buffer;
return 1;
}
// 输出BIOS信息
std::cout << "制造商: " << biosInfo.substr(0, biosInfo.find('\0')) << std::endl;
std::cout << "序列号: " << biosInfo.substr(biosInfo.find('\0') + 1, biosInfo.find('\0', biosInfo.find('\0') + 1)) << std::endl;
std::cout << "发布日期: " << biosInfo.substr(biosInfo.find('\0', biosInfo.find('\0') + 1) + 1, biosInfo.find('\0', biosInfo.find('\0', biosInfo.find('\0') + 1) + 1)) << std::endl;
std::cout << "版本: " << biosInfo.substr(biosInfo.find('\0', biosInfo.find('\0', biosInfo.find('\0') + 1) + 1) + 1) << std::endl;
// 释放缓冲区
delete[] buffer;
return 0;
}
复制代码
作者:
w227
时间:
2024-2-7 20:16
直接@就能运行
作者:
q1015133989
时间:
2024-2-8 06:05
这种简单有的裤就不好封装
作者:
feiyu2005
时间:
2024-2-8 15:51
现在流行AI写代码,找GPT、通义千问、文心一言等等,让AI写代码然后自己再稍微修改就行了。
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4