我是C++的新手,目前正在努力获取C++DLL中的Windows修补程序/补丁信息。我评估了以下方法:通过在C++代码中执行子进程并运行wmicqfeget并读取所有数据。通过使用C++API初始化COM,连接到Wbem并执行select*fromwin32_quickfixengineering查询。除了以上两种方法,是否有任何直接的WindowsAPI可以为我完成所有工作并提供机器上当前安装的KB信息列表? 最佳答案 您可以使用WindowsUpdateAgentAPI和IUpdateSearcher界面。
在C#中确定是否已安装给定QFE/补丁的最佳方法是什么? 最佳答案 使用WMI并检查Win32_QuickFixEngineering枚举。来自TechNet:strComputer="."SetobjWMIService=GetObject("winmgmts:"_&"{impersonationLevel=impersonate}!\\"&strComputer&"\root\cimv2")SetcolQuickFixes=objWMIService.ExecQuery_("Select*fromWin32_QuickFixEn
浏览WindowsHotfixesandUpdates上的信息时网站,我了解到Windows维护两个不同的分支来提供更新和修补程序,并且根据描述,GDR->所有Windows更新都属于此类。LDR(QFE)->所有修补程序都属于此类。检索时Windows更新信息WindowsUpdateAgentAPI和使用WMICQFEGET获取修补程序/LDR/QFE信息我发现某些KB编号在WindowsUpdate/Hotfix中很常见。这怎么可能?根据关于GDR和LDR的描述,它说Bydefault,allcomponentsonWindowssystemsstartontheGDRbranc
我们的WiX安装程序将.NET4.0WinForms应用程序部署到WindowsVista和7桌面。该应用程序包括一个PortableClassLibrary这需要.NETpatch(KB2468871)。我们需要安装补丁作为先决条件。可以通过多种方式应用补丁:下载KB2468871补丁并安装安装PortableLibraryTools作为使用ClickOnce的先决条件(可能是#1的变体)使用来自asimilarquestion的建议,我创建了一个CustomAction来检查我演示的QFE(#1)在找到时返回true。privatestaticboolIsPatchAlreadyI