std::string GetHardwareSerialNumber()
{std::string sResult;const long COMMAND_SIZE = 1020;const DWORD WAIT_TIME = 1000; // INFINITE// 获取主板序列号TCHAR szFetCmd[] = _T("wmic BaseBoard get SerialNumber");// 命令行const std::string strEnSearch = "SerialNumber";    // 前导信息// 获取BIOS序列号//TCHAR szFetCmd[] = _T("wmic bios get serialnumber");// 命令行//const std::string strEnSearch = "SerialNumber";    // 前导信息// 获取CPU序号名//TCHAR szFetCmd[] = "wmic cpu get processorid";  // 命令行//const string strEnSearch = "ProcessorId";       // 前导信息BOOL bReturnCode = FALSE;HANDLE hReadPipe = NULL;  // Pipeline for READHANDLE hWritePipe = NULL; // Pipeline for WRITEPROCESS_INFORMATION pi;   // Process informationSTARTUPINFO         si;   // Control-command window infoSECURITY_ATTRIBUTES sa;   // Security attributeschar szBuffer[COMMAND_SIZE + 1] = { 0 }; // Command line output bufferstd::string strBuffer;DWORD count = 0;size_t pos = 0;size_t i = 0;size_t j = 0;char* lpszBaseBoard = (char*)malloc((COMMAND_SIZE + 1)*sizeof(char));memset(lpszBaseBoard, 0x00, (COMMAND_SIZE + 1)*sizeof(char));memset(&pi, 0, sizeof(pi));memset(&si, 0, sizeof(si));memset(&sa, 0, sizeof(sa));pi.hProcess = NULL;pi.hThread = NULL;si.cb = sizeof(STARTUPINFO);sa.nLength = sizeof(SECURITY_ATTRIBUTES);sa.lpSecurityDescriptor = NULL;sa.bInheritHandle = TRUE;bReturnCode = CreatePipe(&hReadPipe, &hWritePipe, &sa, 0);if (!bReturnCode)goto EXIT;GetStartupInfo(&si);si.hStdError = hWritePipe;si.hStdOutput = hWritePipe;si.wShowWindow = SW_HIDE; // hide command line windowsi.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;bReturnCode = CreateProcess(NULL, szFetCmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);if (!bReturnCode)goto EXIT;WaitForSingleObject(pi.hProcess, WAIT_TIME);bReturnCode = ReadFile(hReadPipe, szBuffer, COMMAND_SIZE, &count, 0);if (!bReturnCode)goto EXIT;bReturnCode = FALSE;strBuffer = szBuffer;pos = strBuffer.find(strEnSearch);if (pos < 0) // NOT FOUNDgoto EXIT;elsestrBuffer = strBuffer.substr(pos + strEnSearch.length());memset(szBuffer, 0x00, sizeof(szBuffer));strcpy_s(szBuffer, strBuffer.c_str());j = 0;for (i = 0; i < strlen(szBuffer); i++){if (szBuffer[i] != ' ' && szBuffer[i] != '\n' && szBuffer[i] != '\r'){lpszBaseBoard[j] = szBuffer[i];j++;}}sResult = lpszBaseBoard;bReturnCode = TRUE;EXIT:free(lpszBaseBoard);CloseHandle(hWritePipe);CloseHandle(hReadPipe);CloseHandle(pi.hProcess);CloseHandle(pi.hThread);return sResult;
}

VC++ 通过wmic获取主板和BIOS序列号相关推荐

  1. Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用

    Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用 1 获取硬件核心基础核心基础Wmi1 2 其他资料2 3 Wmic WMI 命令行接口2 4 Atitit.获取主板 ...

  2. 通过WMIC指令获取CPU、主板及BIOS序列号

    # CPU序列号 wmic cpu get processorid # 主板序列号 wmic baseboard get serialnumber # BIOS序列号 wmic bios get se ...

  3. Python查询物理机硬盘、主板、BIOS序列号(用于认证Windows设备)

    有些应用场景下我们需要认证设备,对于安装了Windows系统的物理机可以采用WMI获取硬盘.主板.BIOS序列号,从而确认设备的唯一性. 1. 安装依赖库 wmi pip install wmi 2. ...

  4. 使用WMI编程获取主机硬件信息(CPU_ID,硬盘、主板、BIOS序列号,Mac地址)

    最近在公司实习,有个应用需要获取windows主机的一些硬件信息,在网上查阅了一些资料,大部分都是使用WMI编程来实现的. 因此小菜鸟自己也用WMI实现了一下,封装为函数GetUserInfo(),具 ...

  5. VB.NET 获取主板和CPU序列号

    一.获取主板序列号 以下函数获取一个 WMI 对象,然后获取表示系统主板的WMI_BaseBoard对象的集合.它循环通过他们获取主板序列号. Private Function SystemSeria ...

  6. Python使用WMI获取主板和CPU序列号

    2019独角兽企业重金招聘Python工程师标准>>> 安装wmi pip install pywin32 pip install wmi 代码 import wmi c = wmi ...

  7. python获取主板序列号_LabVIEW获取主板序列号和硬盘序列号以进行软件加密

    04-12阅读85 CPU序列号是唯一的编号,只能在处理器内部进行修改. 它由96位数字组成. 高32位是用于标识CPU类型的CPU ID. 每个处理器的低64位不同,并且唯一表示该处理器. 该CPU ...

  8. python获取本机 ip地址、mac地址(物理地址)、计算机名、硬盘序列号、CPU序列号、主板序列号、bios序列号、bios uuid号

    文章目录 python获取本机IP地址.mac地址(物理地址).计算机名 物理地址 计算机名.ip地址 硬盘序列号 CPU序列号 主板序列号 bios序列号 bios uuid号 python获取本机 ...

  9. php获取主板序列号,PHP获取通过windows系统命令wmic获取MAC地址、CPU序列号、主板序列号...

    在项目中,客户需要系统在win系统上获取MAC地址.CPU序列号和主板序列号等,在网上搜索下,通过windows系统命令wmic可以获取,测试基本可行,HardwareInfo.php源代码如下: $ ...

最新文章

  1. html单行注释符号
  2. 吓尿了!手机充完电不拔充电器后果这么严重
  3. Mvc项目解决方案分析
  4. 关于MySQL使用Float存储时的精度问题
  5. 【算法图解|1】js 实现一个函数,完成超过范围的两个大整数相加功能
  6. 如何在Win11重置系统中保留个人文件 Win11重置系统保留个人文件方法
  7. codeforces CF986C AND Graph 建圖 dfs
  8. 理论基础 —— 队列
  9. javascript性能
  10. Java容器工具类Arrays
  11. 编译安装Nginx以及配置运行Drupal 8,实现上传进度功能
  12. 恒生笔试题B卷 数据库
  13. php gd libpng,libpng版本问题导致的PHP调用gd扩展出错解决方案
  14. 新年寄语+从业感受+祝大家新年快乐~
  15. 51单片机的堆栈指针(SP)
  16. python manage.py runserver报错
  17. 飞飞php影视系统漏洞,飞飞影视最新版前台无限制getshell
  18. 【高项】人力资源管理(ITTO)
  19. html (第四本书第五章参考)
  20. android auto note 8,可持续发展BMW将发布无线安卓互联系统,CarPlay终于不再一家独大!...

热门文章

  1. 股指期货和ETF的套利
  2. gcc和ld 中的参数 --whole-archive 和 --no-whole-archive
  3. 6. 多列布局column
  4. 科大讯飞解决 唤醒未初始化
  5. oracle licence计算
  6. 电子组装流水线MES系统实行条码质量追溯
  7. 如何保存meme的网页图片_Meme图片的字体用途是什么(以及如何制作它们?)
  8. libev 设计分析
  9. 关于康托展开和逆康托展开详解,及python代码
  10. win7和win10系统的安装教程