我在07年7月份的時候曾寫過關於使用Windows自動更新API的5篇文章。講述了如何使用系統API來自己實現自動更新程式。文章發布後,有陸續的朋友問我這方面的問題,我也一一作瞭解答。
下面將羅列一些常見問題:
很多朋友可能會用vc來開發,這裡提供一些資源:
http://www.codeproject.com/KB/install/whotfixcheck2.aspx 可以下載其原始碼
1.補丁路徑是可以取到的。但可能不是全部的補丁。
2.自動更新的API是基於Windows系統本身的COM組件的。所以一旦系統的COM組件壞掉,可能就會導致API無法使用。
3.我在文章中的代碼都基於V6版本的WUA,所以如果版本不是V6的話,可以升級到V6再運行
4.不論自己寫的用戶端也好,微軟的自動更新程式也好,其都調用了該自動更新的dll。都是基於該dll之上的處理。
該dll內部調用時,不論誰調用的,都只有一個進程與之對應。(會調用svchost.exe)。且在該進程中,只有一個執行個體。所以,只要該dll正在處理時,就不會接受第二個處理。
5.如何?非同步作業(參考本文最後提供的代碼,僅限於.net),我在代碼中使用了委託來實現。
文章列表:
Windows自動更新API (1)
Windows自動更新API (2)
Windows自動更新API (3)
Windows自動更新API (4)
Windows自動更新API (5)
大家如果對這方面有興趣,可以從第一篇文章看,並參照代碼,相信很好就能理解。
最後我也曾在07年8月做了一個程式,基本涵蓋了文章中說提到的內容,支援在區域網路內設定了Proxy 伺服器、支援非同步作業。小程式有點簡陋的地方也請大家原諒,僅當是一個Demo即可。代碼在XP下可以運行,Vista下沒有嘗試過。
很高興能夠與大家分享技術,同時,如果大家有相關建議和好的經驗,可以留下你寶貴的意見。非常感謝。
代碼下載:AutoUpdateApp.rar
Author:AppleSeeker
Date:2008-06-28