【发布时间】:2015-12-03 17:00:36
【问题描述】:
我正在使用IUpdateSession 和IUpdateSearcher 来尝试获取Windows 系统的可用更新列表。
hr = CoCreateInstance(CLSID_UpdateSession, NULL, CLSCTX_INPROC_SERVER, IID_IUpdateSession, (void**)&pUpdateSession);
if (FAILED(hr) || pUpdateSession == NULL)
{
return;
}
hr = pUpdateSession->CreateUpdateSearcher(&pUpdateSearcher);
if (FAILED(hr) || pUpdateSearcher == NULL)
{
return;
}
pUpdateSearcher->put_Online(VARIANT_FALSE);
pUpdateSearcher->put_CanAutomaticallyUpgradeService(VARIANT_FALSE);
pUpdateSearcher->put_IncludePotentiallySupersededUpdates(VARIANT_FALSE);
hr = pUpdateSearcher->Search(BSTR(L"IsInstalled=0 AND IsHidden=0"), &type);
if (FAILED(hr) || type == NULL)
{
return;
}
else
{
... Print results etc. etc.
}
当您有单个(或少量)更新时,这非常有用。在有 109 个可用更新的新机器上进行测试时,->Search() 调用需要 10 分钟 来处理。
这是正常行为,还是可以采取一些措施来提高性能?
提前感谢您的帮助。 也欢迎使用其他解决方案来获得可用更新列表。
【问题讨论】:
标签: c++ windows performance wuapi