CXKJ 发表于 2024-2-7 11:40:25

谁帮我用C++写一个例子 付费

取BIOS信息制造商   序列号发布日期版本

xuezhq 发表于 2024-2-7 12:15:15

这不是挺简单的吗?

CXKJ 发表于 2024-2-7 13:06:57

xuezhq 发表于 2024-2-7 12:15
这不是挺简单的吗?

关键我不会呀Q332452295

shuimiao 发表于 2024-2-7 13:23:26

火山貌似已经有了官方库获取硬件信息,下载最新火山找找

CXKJ 发表于 2024-2-7 13:49:31

shuimiao 发表于 2024-2-7 13:23
火山貌似已经有了官方库获取硬件信息,下载最新火山找找

我要c++写的哦

fengshangren 发表于 2024-2-7 16:38:23

火山的源码就是c++

承易 发表于 2024-2-7 19:12:11

#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;

    // 获取BIOS信息
    if (GetSystemFirmwareTable(FirmwareTableProviderSignature, FirmwareTableID, buffer, &bufferSize) == ERROR_SUCCESS) {
      // 解析BIOS信息
      for (DWORD i = 0; i < bufferSize; i++) {
            switch (dataType) {
                case 0: // 制造商
                  if (buffer == 0) {
                        dataType = 1;
                  } else {
                        biosInfo += static_cast<char>(buffer);
                  }
                  break;
                case 1: // 序列号
                  if (buffer == 0) {
                        dataType = 2;
                  } else {
                        biosInfo += static_cast<char>(buffer);
                  }
                  break;
                case 2: // 发布日期
                  if (buffer == 0) {
                        dataType = 3;
                  } else {
                        biosInfo += static_cast<char>(buffer);
                  }
                  break;
                case 3: // 版本
                  if (buffer == 0) {
                        dataType = 4;
                  } else {
                        biosInfo += static_cast<char>(buffer);
                  }
                  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:09

直接@就能运行https://bbs.voldp.com/static/image/smiley/grapeman/01.gif

q1015133989 发表于 2024-2-8 06:05:02

这种简单有的裤就不好封装

feiyu2005 发表于 2024-2-8 15:51:45

现在流行AI写代码,找GPT、通义千问、文心一言等等,让AI写代码然后自己再稍微修改就行了。
页: [1]
查看完整版本: 谁帮我用C++写一个例子 付费