哪位高手能解释一下,”*时刻表“程序的更新原理

谁能解释一下,”*时刻表“程序的更新原理
*时刻表程序只有一个执行文件,更新时能看到下载文件的过程,它是怎样将下载的文件替换掉原来的文件?
------解决方案--------------------
A)更新程序定延时,之前程序可以结束。
B)将自己复制一份,启动复制程序进行更新,自己可以结束。
C)解压出一个更新程序,启动更新程序,自己可以结束。
D)其实在其他目录安装有可执行文件负责更新。

用 Process Monitor 和 Process Explorer 监视,具体做了什么。
------解决方案--------------------
刚好我以前的一个软件里写过自动更新。我是这样做的:
1.写一个update.exe,做为资源文件添加到主程序(每一版的主程序)
2.服务器起一个web站点,在某个目录下扔一个ver.txt(或者可以用web service),记录版本
3.主exe运行的时候联系服务器,获取版本,如果有新版了,就升级
升级:
1.主程序释放update.exe并运行,运行参数包含:主程序的pid,旧程序的版本,新程序的版本(版本号用在通知里)
2.update.exe直接杀掉pid对应进程,并下载新版程序
3.删除旧版程序,将下载的新版程序复制过去
4.运行新版程序,并传入参数:update.exe的pid,旧版本号,新版本号
5.新版程序运行后,杀掉update.exe,并删除,弹个窗报告新版本号和旧版本号
------解决方案--------------------
如2楼所说,客户端从服务器端查找,对比后更新替换。
------解决方案--------------------
其实有一点很多人不知道,就是程序运行的时候虽然不能删除它,但是可以改名(以及同驱动器之间移动)