c语言wmi接口磁盘信息,C/C++调用WMI获取硬盘CPU序列号网卡地址

本文介绍了一个C++程序,通过WMI接口获取CPU序列号、硬盘序列号、MAC地址和操作系统名称。程序中包含了使用IWbemServices和IWbemLocator接口进行查询的实现,并对关键代码进行了详细说明。
摘要由CSDN通过智能技术生成

最近要做个简单的网络验证, 需要取硬件的一些信息, 例如CPU序列号, 硬盘序列号, MAC地址, OS名称等等, 折腾了一天终于搞定了并且做了些简单封装, 先放个截图

efa8b576e2de152304619f3a60f2640e.png

stdafx.h

// stdafx.h : 标准系统包含文件的包含文件,

// 或是经常使用但不常更改的

// 特定于项目的包含文件

//

#pragma once

#include "targetver.h"

#include

#include

// TODO: 在此处引用程序需要的其他头文件

#include

#include

#include

#pragma comment(lib, "wbemuuid.lib")

#include

#include

#include

using namespace std;

main.cpp

// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

class system_info

{

public:

~system_info();

system_info(wchar_t* WMI_Namespace = L"ROOT\\CIMV2");

void Get_CpuId(string& dest);

void Get_DiskDriveId(string& dest);

void Get_MacAddress(string& dest);

void Get_OsName(string& dest);

private:

IWbemServices* pSvc; //接收指向绑定到指定名称空间的IWbemServices对象的指针

IWbemLocator* pLoc; //接收CoCreateInstance 创建的实例指针

bool ExecQuery(char* strQueryLanguage, char* strQuery, IEnumWbemClassObject** pEnumerator);

};

system_info::~system_info()

{

pSvc->Release();

pLoc->Release();

}

system_info::system_info(wchar_t *WMI_Namespace)

{

pSvc = NULL;

pLoc = NULL;

HRESULT hres = CoCreateInstance(

CLSID_WbemLocator,

0,

CLSCTX_INPROC_SERVER,

IID_IWbemLocator, (LPVOID *)&pLoc);

if (FAILED(hres))

{

cout &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值