获取c++中WMI查询的行数
Get the row count of WMI Query in C++
下面的vbscript给出了WMI查询返回的行数。
strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer & "rootCIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PnPSignedDriver",,0)
Wscript.Echo colItems.count
同样的事情我需要在c++中实现。
c++中,使用IWbemServices->ExecQuery方法传递查询
....
//initializing and connecting WMI
....
hr = services->ExecQuery(bstr_t("WQL"), bstr_t(strClass), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &results);
我尝试了上面的,但不知道如何得到查询的行数。有人可以建议如何在c++中完成它
在WMI COM API中不存在该属性,要获得记录的数量,您必须使用IEnumWbemClassObject
接口并计算您自己返回的实例。
您需要迭代结果:
IWbemClassObject* pclsObj = NULL;
int uRows = 0;
while (pEnumerator)
{
HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn);
if (0 == uReturn)
{
break;
}
uRows++;
}
uRows 是你"行count"。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 查询SQLite数据库中的日期
- WMI检测进程创建事件-c++
- 如何在ArangoDb AQL查询中指定数据库
- Qt SQLite没有查询或参数计数不匹配
- 如何使用c++在VS 2019上运行SQL查询
- 从返回的顶点缓冲区查询顶点结构
- 以非特权用户身份查询 NTFS 特殊文件的元数据?
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- 为什么当我有风扇时,Win32_Fan没有 WMI 实例?
- 查询 NFS 上的提升进程间::file_lock
- Qt JSON – 从子项查询
- 在 c++ 中解决段树以外的范围查询的有效方法是什么?
- 无法从 Win10 中的 IDirectDraw7 查询 IDirect3D7
- 如何查询以确定我的 MacOS/X 应用程序是否处于应用程序午睡模式?
- 如何在C++中使用WMI从WIN32_NetworkAdapter中检索值?我无法理解用于在查询后访问值的VARIANT
- C++编译器WMI:无效查询
- 查询 WMI 以获取D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY
- 获取c++中WMI查询的行数
- 奇怪的WMI查询结果