【发布时间】:2012-10-08 11:19:12
【问题描述】:
我是 C++ 新手,目前正在努力在 C++ DLL 中获取 Windows 修补程序/补丁信息。
我评估了以下几种方式:
- 通过在 C++ 代码中执行一个子进程并运行
wmic qfe get并读取所有数据。 - 通过使用 C++ API 初始化 COM,连接到 Wbem 并执行
select * from win32_quickfixengineering查询。
除了以上两种方法,
是否有任何直接的 Windows API 可以为我完成所有工作并提供当前安装在机器上的 KB 信息列表?
【问题讨论】:
-
机器上当前安装的KB列表没有用。例如,如果您想知道是否安装了 Q1234 的修复程序,即使 KB1234 不在已安装的 KB 列表中,答案也可能是“是”。该修复程序可能位于汇总包或服务包中。正确答案不是查询 QFE 列表,寻找 1234,而是询问 WU 是否需要 QFE 1234。
-
感谢陈先生的快速回复。我完全需要 qfe get 给出的知识库列表。我知道某些 KB 是服务包的一部分的情况,我们可以从操作系统信息中获取该信息。如果编写的任何 API 执行类似于 qfe get,我可以直接在代码中使用,而不是完全从头开始编写。
-
您尚未解释您将使用此信息的目的,因此尚不清楚这是否是正确的方法。无论如何,您始终可以program directly to WMI。这就是 WMIC 所做的一切。
-
该信息用于了解本机的补丁信息。
标签: windows winapi visual-c++ wmi-query