我在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月做了一个程序,基本涵盖了文章中说提到的内容,支持在局域网内设置了代理服务器、支持异步操作。小程序有点简陋的地方也请大家原谅,仅当是一个Demo即可。代码在XP下可以运行,Vista下没有尝试过。
很高兴能够与大家分享技术,同时,如果大家有相关建议和好的经验,可以留下你宝贵的意见。非常感谢。
代码下载:AutoUpdateApp.rar
Author:AppleSeeker
Date:2008-06-28
下面将罗列一些常见问题:
很多朋友可能会用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月做了一个程序,基本涵盖了文章中说提到的内容,支持在局域网内设置了代理服务器、支持异步操作。小程序有点简陋的地方也请大家原谅,仅当是一个Demo即可。代码在XP下可以运行,Vista下没有尝试过。
很高兴能够与大家分享技术,同时,如果大家有相关建议和好的经验,可以留下你宝贵的意见。非常感谢。
代码下载:AutoUpdateApp.rar
Author:AppleSeeker
Date:2008-06-28