递归火山软件开发平台

标题: 谁帮我用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
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <string>

  4. int main() {
  5.     DWORD bufferSize = 0;
  6.     BYTE* buffer = nullptr;
  7.     DWORD dataType = 0;
  8.     std::string biosInfo;

  9.     // 获取缓冲区大小
  10.     if (GetSystemFirmwareTable(FirmwareTableProviderSignature, FirmwareTableID, 0, &bufferSize) != ERROR_INSUFFICIENT_BUFFER) {
  11.         std::cerr << "无法获取缓冲区大小" << std::endl;
  12.         return 1;
  13.     }

  14.     // 分配缓冲区
  15.     buffer = new BYTE[bufferSize];

  16.     // 获取BIOS信息
  17.     if (GetSystemFirmwareTable(FirmwareTableProviderSignature, FirmwareTableID, buffer, &bufferSize) == ERROR_SUCCESS) {
  18.         // 解析BIOS信息
  19.         for (DWORD i = 0; i < bufferSize; i++) {
  20.             switch (dataType) {
  21.                 case 0: // 制造商
  22.                     if (buffer[i] == 0) {
  23.                         dataType = 1;
  24.                     } else {
  25.                         biosInfo += static_cast<char>(buffer[i]);
  26.                     }
  27.                     break;
  28.                 case 1: // 序列号
  29.                     if (buffer[i] == 0) {
  30.                         dataType = 2;
  31.                     } else {
  32.                         biosInfo += static_cast<char>(buffer[i]);
  33.                     }
  34.                     break;
  35.                 case 2: // 发布日期
  36.                     if (buffer[i] == 0) {
  37.                         dataType = 3;
  38.                     } else {
  39.                         biosInfo += static_cast<char>(buffer[i]);
  40.                     }
  41.                     break;
  42.                 case 3: // 版本
  43.                     if (buffer[i] == 0) {
  44.                         dataType = 4;
  45.                     } else {
  46.                         biosInfo += static_cast<char>(buffer[i]);
  47.                     }
  48.                     break;
  49.             }
  50.         }
  51.     } else {
  52.         std::cerr << "无法获取BIOS信息" << std::endl;
  53.         delete[] buffer;
  54.         return 1;
  55.     }

  56.     // 输出BIOS信息
  57.     std::cout << "制造商: " << biosInfo.substr(0, biosInfo.find('\0')) << std::endl;
  58.     std::cout << "序列号: " << biosInfo.substr(biosInfo.find('\0') + 1, biosInfo.find('\0', biosInfo.find('\0') + 1)) << std::endl;
  59.     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;
  60.     std::cout << "版本: " << biosInfo.substr(biosInfo.find('\0', biosInfo.find('\0', biosInfo.find('\0') + 1) + 1) + 1) << std::endl;

  61.     // 释放缓冲区
  62.     delete[] buffer;

  63.     return 0;
  64. }
复制代码

作者: 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