本文章對以前幾篇文章中不足的以及錯誤的地方,進行修改。希望對大家有所協助。
在 Vista和Xp中,WUA有很多地方不同的,根據Xp的自動更新版本決定。最大的區別在於剛安裝完Xp-sp2後,WUA的版本比較老,且很多介面中的 函數都不提供。比如:代理類,IUpdate3,IUpdateSearcher2等。所以用.net開發時要進行注意用戶端是否對WUA進行更新過。基 本上最新的WUA都是v6版了。與Vista下提供的版本差別不大了。
有代理的情況:
比如公司設定代理,Xp下,就不會更新,而Vista會,因為在Vista下會彈出讓使用者輸入代理的使用者名稱和密碼的對話方塊。當這種情況時,自己寫的程式要搜尋、下載、安裝須先建立代理類,然後由代理類建立相應的操作類。
代碼參考如下:
1 WUApiLib.UpdateSessionClass session = new WUApiLib.UpdateSessionClass();
2
3 session.WebProxy.Address = @" ********** " ;
4 session.WebProxy.PromptForCredentials(sender, " Input Your Passport! " );
PromptForCredentials方法,彈出系統對話方塊,然後輸入使用者名稱密碼後,自動將其給代理類。
1 WUApiLib.IUpdateSearcher upSearch = session.CreateUpdateSearcher();
2 WUApiLib.IUpdateDownloader upDownload = session.CreateUpdateDownloader();
3 WUApiLib.IUpdateInstaller2 upInstall = (WUApiLib.IUpdateInstaller2)session.CreateUpdateInstaller();
最後,如果你使用的D版的作業系統,那麼自動更新首先會要求你更新WGA,在驗證通過的情況下才能更新後續程式,使用自己寫的程式來更新能夠更方便的去更新很多Xp下自動更新無法更新的部分,如驅動。