所以这就是场景。我正在为我的应用程序编写安装程序。这就是问题所在。用户将安装程序提升为admin。
当前正在运行admin的进程。我的问题是,如何在运行时将此文件移动到其他位置?如果我尝试,我会收到错误"访问被拒绝" ...显然,因为该文件已被使用。注意我要移动的文件本身是很重要的。就像我可以获取当前文件并将其自身移动到另一个目录。
所以我希望我的程序流程是这样的:
request_admin_From_user() // done
start_admin_elevated_process() // done
move_admin_process_to_another_directory() // how? if the process is running..
答案 0 :(得分:1)
一个进程在运行时无法移动自己的.exe
文件,但它可以:
复制该文件,然后稍后删除原始文件。
使用带有MOVEFILE_DELAY_UNTIL_REBOOT
标志的MoveFileEx()
计划延迟移动,以便在下次操作系统重启时执行移动。这也可用于在重新启动时删除文件。