我的应用程序需要删除一些文件,但这应该发生在下一个Windows启动之前.
@H_404_2@我现在正在做的是在RunOnce注册表项中写入此字符串值:
Command.com /c del c:\some file.ext@H_404_2@但我观察到嵌入空间的路径存在问题.我不得不说我也试过这个:
Command.com /c del "c:\some file.ext"@H_404_2@但这并没有解决问题,但最糟糕的是:不删除任何文件,无论嵌入空间如何! @H_404_2@从程序中删除文件延迟到下次重启的正确方法是什么? @H_404_2@谢谢.
解决方法
不要使用RunOnce,也不要使用Command.com.如果您坚持使用某些内容,请改用%COMSPEC%/ c.不过,你有更好的选择.
@H_404_2@改为使用MoveFileEx和MOVEFILE_DELAY_UNTIL_REBOOT标志:
if not MoveFileEx(PChar(YourFileToDelete),nil,MOVEFILE_DELAY_UNTIL_REBOOT) then SysErrorMessage(GetLastError);