ata*_*ata 29 windows file process
有没有办法让正在运行的进程可以删除自己的可执行文件?
例如,我创建一个控制台应用程序(单个exe),并在执行某些任务后以某种方式删除exe文件.
我必须向某人发送一个文件.我希望它在完成预定任务后删除.
无论如何都要在Windows中执行此操作
Gre*_*ill 19
一种方法是使用带标志和目标的MoveFileEx函数.根据文档,这个:MOVEFILE_DELAY_UNTIL_REBOOTNULL
注册系统重新启动时要删除的lpExistingFileName文件.如果lpExistingFileName引用目录,则仅当目录为空时,系统才会在重新启动时删除目录.
Sam*_*rif 18
process.start("cmd /c ping localhost -n 3 > nul & del filepath")
exit
Run Code Online (Sandbox Code Playgroud)
用您的编程语言用于启动带参数的程序的任何命令替换process.start
用你的exe的路径替换filepath
使用命令替换exit以终止程序
您可以使用 Windows 调度程序来安排任务以在 X 秒后删除您的程序。
命令行:http : //msdn.microsoft.com/en-us/library/bb736357%28VS.85%29.aspx
或 API:http : //msdn.microsoft.com/en-us/library/aa383608%28VS.85%29.aspx
在Linux上可以这样做。您会发现在Windows上通常无法删除正在运行的可执行文件。但是,您可以让Windows在下次重新启动时为您删除EXE:http : //www.howtodothings.com/computers/a1402-delete-a-running-exe.html
如果要在文件运行后将其删除,则可以简单地要求用户将其删除。如果您希望这样做的原因是出于安全考虑,那么您在做什么是错误的。用户可以通过简单地首先制作文件的副本来规避此问题。