基于MFC获得主板序列号
const long MAX_COMMAND_SIZE = 10000; // 命令行输出缓冲大小 WCHAR szFetCmd[] = _T("wmic BaseBoard get SerialNumber"); // 获取主板序列号命令行 CString strEnSearch;strEnSearch.Format(_T("SerialNumber")); // 主板序列号的前导信息char szReadResult[MAX_COMMAND_SIZE+1] = {0}; // 放置命令行结果的输出缓冲区CString strBuffer;unsigned long count = 0;long ipos = 0;BOOL bret = FALSE;HANDLE hReadPipe = NULL; //读取管道HANDLE hWritePipe = NULL; //写入管道 PROCESS_INFORMATION pi; //进程信息 STARTUPINFO si; //控制命令行窗口信息SECURITY_ATTRIBUTES sa; //安全属性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;//1.0 创建管道bret = CreatePipe(&hReadPipe, &hWritePipe, &sa, 0);if(!bret){goto END;}//2.0 设置命令行窗口的信息为指定的读写管道GetStartupInfo(&si);si.hStdError = hWritePipe;si.hStdOutput = hWritePipe;si.wShowWindow = SW_HIDE; //隐藏命令行窗口si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;//3.0 创建获取命令行的进程bret = CreateProcess(NULL, szFetCmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi );if(!bret){goto END;} //4.0 读取返回的数据WaitForSingleObject (pi.hProcess, 500/*INFINITE*/);bret = ReadFile(hReadPipe, szReadResult, MAX_COMMAND_SIZE, &count, 0);if(!bret){goto END;}//5.0 查找主板序列号bret = FALSE;strBuffer = szReadResult;//strBuffer.Format(_T("%s"),szBuffer);ipos = strBuffer.Find(strEnSearch);if (ipos < 0) // 没有找到主板序列号的前导信息,即没有找到主板序列号{ goto END;}else{//读出的结果包含主板序列号前导信息 空格 主板序列号三部分;//首先去除前导信息。strBuffer = strBuffer.Right(strBuffer.GetLength() - strEnSearch.GetLength());//然后去除空格CString result1;result1 = strBuffer.Trim();TRACE(result1);//将结果trace到输出窗口} bret = TRUE;
END://关闭所有的句柄CloseHandle(hWritePipe);CloseHandle(hReadPipe);CloseHandle(pi.hProcess);CloseHandle(pi.hThread);
基于MFC获得主板序列号相关推荐
- 通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号
开发语言:C/C++ 支持平台:Windows 实现功能: 通过WMI获取网卡MAC地址.硬盘序列号.主板序列号.CPU ID.BIOS序列号 下载地址: WMI_DeviceQuery.zip 版本 ...
- 获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)
1 // 注意:首先要在项目中添加引用 System.Management 2 3 using System; 4 using System.Collections.Generic; 5 using ...
- python获取本机 ip地址、mac地址(物理地址)、计算机名、硬盘序列号、CPU序列号、主板序列号、bios序列号、bios uuid号
文章目录 python获取本机IP地址.mac地址(物理地址).计算机名 物理地址 计算机名.ip地址 硬盘序列号 CPU序列号 主板序列号 bios序列号 bios uuid号 python获取本机 ...
- 基于MFC SDI的图像处理程序(带效果图)
基于MFC SDI的图像处理程序(带效果图) 收藏 本程序主要实现了位图的打开保存,JPG格式作为BMP格式,以及24位BMP转化到8位.4位.1位(黑白图)及灰度图.还有一些简单的算法如反色,采用高 ...
- 基于MFC的socket编程(异步非阻塞通信)
对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手.许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其 ...
- Python获取电脑硬件配置的封装类,可以获取CPU序列号、主板序列号、BIOS序列号、硬盘序列号和网卡MAC地址
Python获取电脑硬件配置的封装类,可以获取CPU序列号.主板序列号.BIOS序列号.硬盘序列号和网卡MAC地址. myPyHardware.py # -*- coding: utf-8 -*- i ...
- python wmi读取网卡MAC地址、CPU序列号、硬盘序列号、主板序列号、BIOS序列号
序列号相当于电脑的身份证号,是硬件出厂时,厂商写在硬件里的唯一识别码,具有唯一性和不可修改性.很多正版软件以此来识别用户电脑,限制安装. import uuid import wmi def get_ ...
- C# 获取电脑序列号和主板序列号
项目中有需求要从软件中获取当前电脑的整机序列号和主板序列号,研究一番,C#的实现如下: using System.Management;//整机序列号 public static string get ...
- 计算机自带的科学计算器代码,[置顶] 科学计算器(简化版:基于MFC对话框)
科学计算器(简化版) 最终界面: 全部源代码下载地址: 链接: http://download.csdn.net/detail/u012339743/8198227 详细编写过程: 1. 打开V ...
最新文章
- 图神经网络可以解决现实世界中的问题吗?
- SQL SERVER2000教程-第四章 创建和维护表 第二节 数据完整性
- android 安装环境及入门
- ionic 获取input的值
- mysql内存不断被占用,导致每隔一个多月就自动重启,修改数据库配置后,问题解决...
- 在ne中分析贱谈.net中简体转繁体
- 查询SQLSERVER执行过的SQL记录
- 图解TCP 的重传、滑动窗口、流量控制和拥塞控制机制
- 博士和博士后的有什么区别?
- 华云数据收购国际超融合软件厂商Maxta全部资产
- 顺序栈基本操作的C语言实现(含全部代码实现)--- 数据结构之顺序栈
- android 百度基站定位服务器,Android基站定位原理及实现代码
- PERT图事件、活动、松弛时间与关键路径的相关计算
- 天梯赛L2-016 愿天下有情人都是失散多年的兄妹
- 综合评价之熵值法+TOPSIS
- html怎么将一张图撑大,div 如何防止图片太大被撑开
- 传奇手游战神引擎开服教程架设教程工具全套图文教程
- 全球域名后缀注册量排行榜!
- Vue制作一个日程表
- linux napi