卸载程序时,Windows如何在下次重新启动时删除锁定的文件?

时间:2014-02-08 02:06:26

标签: windows delete-file filelock

卸载程序时,Windows如何在下次重新启动时删除锁定的文件?也许有某种预定的过程?

1 个答案:

答案 0 :(得分:4)

卸载过程使用MoveFileEx并设置MOVEFILE_DELAY_UNTIL_REBOOT标志,这表示在重新启动之前不应执行操作。保留lpNewFileName参数为NULL表示应删除该文件:

  

如果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