AppleSeeker's Tech Blog
Welcome to AppleSeeker's space

本文章对以前几篇文章中不足的以及错误的地方,进行修改。希望对大家有所帮助。

在Vista和Xp中,WUA有很多地方不同的,根据Xp的自动更新版本决定。最大的区别在于刚安装完Xp-sp2后,WUA的版本比较老,且很多接口中的函数都不提供。比如:代理类,IUpdate3,IUpdateSearcher2等。所以用.net开发时要进行注意客户端是否对WUA进行更新过。基本上最新的WUA都是v6版了。与Vista下提供的版本差别不大了。

有代理的情况:
比如公司设置代理,Xp下,就不会更新,而Vista会,因为在Vista下会弹出让用户输入代理的用户名和密码的对话框。当这种情况时,自己写的程序要搜索、下载、安装须先创建代理类,然后由代理类创建相应的操作类。

代码参考如下:

1WUApiLib.UpdateSessionClass session = new WUApiLib.UpdateSessionClass();
2
3session.WebProxy.Address = @"**********";
4session.WebProxy.PromptForCredentials(sender, "Input Your Passport!");

PromptForCredentials方法,弹出系统对话框,然后输入用户名密码后,自动将其给代理类。
1WUApiLib.IUpdateSearcher upSearch = session.CreateUpdateSearcher();
2WUApiLib.IUpdateDownloader upDownload = session.CreateUpdateDownloader();
3WUApiLib.IUpdateInstaller2 upInstall = (WUApiLib.IUpdateInstaller2)session.CreateUpdateInstaller();

最后,如果你使用的D版的操作系统,那么自动更新首先会要求你更新WGA,在验证通过的情况下才能更新后续程序,使用自己写的程序来更新能够更方便的去更新很多Xp下自动更新无法更新的部分,如驱动。

我自己也在做相关的软件,等做完后与大家分享。
posted on 2007-07-27 16:18  AppleSeeker(冯峰)  阅读(3603)  评论(15编辑  收藏  举报