【发布时间】:2014-02-08 02:06:26
【问题描述】:
当您卸载程序时,Windows 如何在下次重新启动时删除锁定的文件?也许有某种预定的过程?
【问题讨论】:
标签: windows delete-file filelock
当您卸载程序时,Windows 如何在下次重新启动时删除锁定的文件?也许有某种预定的过程?
【问题讨论】:
标签: windows delete-file filelock
卸载过程使用MoveFileEx 并设置了MOVEFILE_DELAY_UNTIL_REBOOT 标志,这表明该操作在重新启动之前不应发生。将lpNewFileName 参数留空表示应该删除该文件:
如果 dwFlags 指定 MOVEFILE_DELAY_UNTIL_REBOOT 并且 lpNewFileName 为 NULL,则 MoveFileEx 注册 lpExistingFileName 文件以在系统重新启动时删除。如果 lpExistingFileName 引用了一个目录,只有当目录为空时系统才会在重启时删除该目录。
MOVEFILE_DELAY_UNTIL_REBOOT 上的信息说:
MOVEFILE_DELAY_UNTIL_REBOOT
在重新启动操作系统之前,系统不会移动文件。系统在执行 AUTOCHK 后立即移动文件,但在创建任何分页文件之前。因此,该参数使函数能够从以前的启动中删除分页文件
上面的函数向注册表写入一个在启动时自动处理的条目:
该函数将重新启动时要重命名的文件的位置存储在以下注册表值中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
【讨论】: