VC++ 通过wmic获取主板和BIOS序列号
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序列号相关推荐
- Atitit.获取主板与bios序列号获取硬件设备信息 Wmi wmic 的作用
Atitit.获取主板与bios序列号获取硬件设备信息 Wmi wmic 的作用 1 获取硬件核心基础核心基础Wmi1 2 其他资料2 3 Wmic WMI 命令行接口2 4 Atitit.获取主板 ...
- 通过WMIC指令获取CPU、主板及BIOS序列号
# CPU序列号 wmic cpu get processorid # 主板序列号 wmic baseboard get serialnumber # BIOS序列号 wmic bios get se ...
- Python查询物理机硬盘、主板、BIOS序列号(用于认证Windows设备)
有些应用场景下我们需要认证设备,对于安装了Windows系统的物理机可以采用WMI获取硬盘.主板.BIOS序列号,从而确认设备的唯一性. 1. 安装依赖库 wmi pip install wmi 2. ...
- 使用WMI编程获取主机硬件信息(CPU_ID,硬盘、主板、BIOS序列号,Mac地址)
最近在公司实习,有个应用需要获取windows主机的一些硬件信息,在网上查阅了一些资料,大部分都是使用WMI编程来实现的. 因此小菜鸟自己也用WMI实现了一下,封装为函数GetUserInfo(),具 ...
- VB.NET 获取主板和CPU序列号
一.获取主板序列号 以下函数获取一个 WMI 对象,然后获取表示系统主板的WMI_BaseBoard对象的集合.它循环通过他们获取主板序列号. Private Function SystemSeria ...
- Python使用WMI获取主板和CPU序列号
2019独角兽企业重金招聘Python工程师标准>>> 安装wmi pip install pywin32 pip install wmi 代码 import wmi c = wmi ...
- python获取主板序列号_LabVIEW获取主板序列号和硬盘序列号以进行软件加密
04-12阅读85 CPU序列号是唯一的编号,只能在处理器内部进行修改. 它由96位数字组成. 高32位是用于标识CPU类型的CPU ID. 每个处理器的低64位不同,并且唯一表示该处理器. 该CPU ...
- python获取本机 ip地址、mac地址(物理地址)、计算机名、硬盘序列号、CPU序列号、主板序列号、bios序列号、bios uuid号
文章目录 python获取本机IP地址.mac地址(物理地址).计算机名 物理地址 计算机名.ip地址 硬盘序列号 CPU序列号 主板序列号 bios序列号 bios uuid号 python获取本机 ...
- php获取主板序列号,PHP获取通过windows系统命令wmic获取MAC地址、CPU序列号、主板序列号...
在项目中,客户需要系统在win系统上获取MAC地址.CPU序列号和主板序列号等,在网上搜索下,通过windows系统命令wmic可以获取,测试基本可行,HardwareInfo.php源代码如下: $ ...
最新文章
- html单行注释符号
- 吓尿了!手机充完电不拔充电器后果这么严重
- Mvc项目解决方案分析
- 关于MySQL使用Float存储时的精度问题
- 【算法图解|1】js 实现一个函数,完成超过范围的两个大整数相加功能
- 如何在Win11重置系统中保留个人文件 Win11重置系统保留个人文件方法
- codeforces CF986C AND Graph 建圖 dfs
- 理论基础 —— 队列
- javascript性能
- Java容器工具类Arrays
- 编译安装Nginx以及配置运行Drupal 8,实现上传进度功能
- 恒生笔试题B卷 数据库
- php gd libpng,libpng版本问题导致的PHP调用gd扩展出错解决方案
- 新年寄语+从业感受+祝大家新年快乐~
- 51单片机的堆栈指针(SP)
- python manage.py runserver报错
- 飞飞php影视系统漏洞,飞飞影视最新版前台无限制getshell
- 【高项】人力资源管理(ITTO)
- html (第四本书第五章参考)
- android auto note 8,可持续发展BMW将发布无线安卓互联系统,CarPlay终于不再一家独大!...