【发布时间】:2011-10-30 04:54:24
【问题描述】:
我正在尝试创建一个可以静默处理更新的程序。我正在使用 wuapilib.dll,它带有许多类 (c#)。我对该程序的第一次修订如下(忽略错字问题 - 它在另一台没有互联网访问的计算机上,所以我手动输入):
IUpdateSession mySess = new UpdateSession();
IUpdateSearcher mySear = mySess.CreateUpdateSearcher();
ISearchResult myRes = mySear.Search("Type='Software'");
IUpdateDownloader myDown = mySess.CreateUpdateDownloader();
IUpdateInstaller myInst = mySess.CreateUpdateInstaller();
myDown.Updates = myRes.Updates;
myDown.Download();
myInst.Updates = myRes.Updates;
myInst.Install();
忽略已经下载或安装更新的情况,我省略了上面的逻辑。我的问题是 IUpdateInstaller 不允许您强制安静安装 - 许多更新需要用户单击确认框。 IUpdateInstaller2 类确实如此(我从第二篇帖子中得到了这一点here),但对于我来说,我找不到获取 IUpdateInstaller2 对象的方法。似乎没有任何返回值,并且 Microsoft 的文档不包含任何示例代码。广泛的谷歌搜索没有返回任何用处。
我想我真的很接近 - 功能就在那里,我只是无法访问它。
感谢您的帮助。
【问题讨论】:
-
您是否尝试过使用 IUnknown::QueryInterface 查看从 CreateUpdateInstaller 返回的对象是否提供 IUpdateInstaller2 接口以及 IUpdateInstaller 接口?
标签: c# windows windows-update