Hello开发人员,
现在,在我的一次创意失眠会议期间,我一直在研究我的一个项目,同时学习C#,我碰巧想知道 - 有没有办法创建一个自我删除的应用程序?
现在,不要误以为我是一个懒得做研究的人。我已经做了一些自己的实验(好吧,实际上并没有多少实验,因为File。功能似乎不能完成这样的任务 - 这并不奇怪,在删除正在运行的应用程序时,Windows是非常不情愿的)
我做了一些研究,结果发现我的一些担心是真的 - 这样的功能需要执行命令行进程或MOVEFILE_DELAY_UNTIL_REBOOT标志。第二种选择绝对是不可能的,而第一种选择仍然有些混乱。因此,我只是好奇 - 有没有更有经验的CSharp开发人员在这里找到另一种方法来做到这一点? (从理论上讲,这听起来确实不可能。但是,如果低估开发人员,那我就是愚蠢的)
答案 0 :(得分:1)
可能的方法......未经测试......
您可以考虑使用CreateFile
的另一个FILE_FLAG_DELETE_ON_CLOSE标记。
Sleep
用于学习目的)此时第二个文件应该没有句柄,也会被操作系统删除。
答案 1 :(得分:0)
您的问题已经被问到here。
您可以使用MoveFileEx API执行此操作,它会为您提供MOVEFILE_DELAY_UNTIL_REBOOT标志,该标志将删除您在下次系统启动时所需的内容。