Delphi中如何替换运行之中的文件实现程序的自动更新
各位朋友:
最近在开发一个自动更新的程序,其主要原理是:当主程序启动后,其软件升级子模块自动从网上下载主程序(.exe)和与之相关的DLL等文件到本机的一个临时目录。然后在比较正运行的主程序和DLL等文件与临时目录中的文件是否需要替。如果需要,用临时目录中的文件替换原有文件。
其中我已经实现了下载、比较等功能。但是如何替换正在运行中的主程序和DLL文件时却遇到了技术困难。为了解决这个难点我设计了一个方案即:利用Windows API 中的MoveFileWithProgressW来实现。但是,我发现在用Delphi开发的主程序中能实现更新,但是用PB开发的文件却出了“文件访问拒绝”或“有其它进程使用,不能移动”错误。
特向各位朋友寻求技术支持:
1、MoveFileWithProgressW在Delphi中的详细用法
2、各位是否有更佳的方法来实现自动升级