使用WMI获取系统信息过程
我们以获取本机系统为例,获取系统信息的过程如下:
1)初始化COM库
由于用C++编写WMI应用是基于COM技术的,所以必须初始化COM库,这时调用函数CoInitializeEx用于初始化COM库。
HRESULT hres;
hres
=
CoInitializeEx(
0
, COINIT_MULTITHREADED);
if
(FAILED(hres))
{
cout << "Failed to initialize COM library. Error code = 0x"
<< hex << hres << endl;
return 1; // Program has failed.
}
2)初始化COM库安全级别
调用函数CoInitializeSecurity用于初始化COM安全级别。
hres
=
CoInitializeSecurity(
NULL,
-
1
,
//
COM authentication
NULL,
//
Authentication services
NULL,
//
Reserved
RPC_C_AUTHN_LEVEL_DEFAULT,
//
Default authentication
RPC_C_IMP_LEVEL_IMPERSONATE,
//
Default Impersonation
NULL,
我们以获取本机系统为例,获取系统信息的过程如下:
1)初始化COM库
由于用C++编写WMI应用是基于COM技术的,所以必须初始化COM库,这时调用函数CoInitializeEx用于初始化COM库。
HRESULT hres;
hres
=
CoInitializeEx(
0
, COINIT_MULTITHREADED);
if
(FAILED(hres))
{
cout << "Failed to initialize COM library. Error code = 0x"
<< hex << hres << endl;
return 1; // Program has failed.
}
调用函数CoInitializeSecurity用于初始化COM安全级别。
hres
=
CoInitializeSecurity(
NULL,
-
1
,
//
COM authentication
NULL,
//
Authentication services
NULL,
//
Reserved
RPC_C_AUTHN_LEVEL_DEFAULT,
//
Default authentication
RPC_C_IMP_LEVEL_IMPERSONATE,
//
Default Impersonation
NULL,

本文详细介绍了使用WMI和C++/COM技术获取本机系统信息的步骤,包括初始化COM库、设置安全级别、连接到WMI命名空间、创建WMI服务、设置服务安全级别及释放资源。通过对WMI服务的操作,可以查询和获取系统硬件、软件等各种信息。
最低0.47元/天 解锁文章
300

被折叠的 条评论
为什么被折叠?



