delphi – 如何在我的程序下次重启之前延迟文件删除?

我的应用程序需要删除一些文件,但这应该发生在下一个Windows启动之前.

我现在正在做的是在RunOnce注册表项中写入此字符串值:

Command.com /c del c:\some file.ext

但我观察到嵌入空间的路径存在问题.我不得不说我也试过这个:

Command.com /c del "c:\some file.ext"

但这并没有解决问题,但最糟糕的是:不删除任何文件,无论嵌入空间如何!

从程序中删除文件延迟到下次重启的正确方法是什么?

谢谢.

解决方法

不要使用RunOnce,也不要使用Command.com.如果您坚持使用某些内容,请改用%COMSPEC%/ c.不过,你有更好的选择.

改为使用MoveFileEx和MOVEFILE_DELAY_UNTIL_REBOOT标志:

if not MoveFileEx(PChar(YourFileToDelete),nil,MOVEFILE_DELAY_UNTIL_REBOOT) then
  SysErrorMessage(GetLastError);

相关文章

ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c++ 调用, 抽空研究了一下该库的最新版 ,把...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的功能是:将源操作数送到目的操作数中,即:...
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂...
API原型: Declare Function MoveFileEx& Lib "kernel32" Alias "MoveFileExA" (By...