如何让我的 C# 应用程序自行擦除(自毁)?以下是我认为可能有效的两种方法:
- 提供另一个删除主程序的程序。那么,这个删除程序是如何删除的呢?
- 为 CMD 创建一个进程,等待几秒钟然后删除您的文件。在这几秒钟内,您关闭了您的应用程序。
这两种方法似乎效率低下。我有一种感觉,Windows 中有一些内置标志或其他东西允许这些东西。我该怎么做?另外,你能提供一些示例代码吗?
更新:感谢您的所有回答!我要试一试,看看能把我带到哪里。
首先,有些人问我为什么要让我的应用程序这样做。答案如下:几天前,我阅读了 Joel Spolsky 在他的博客上发布的 Aardvark 项目规范,其中提到客户端应用程序将在远程会话后自行删除。我想知道这是如何工作的,以及如果我需要这样做,我如何才能完成这样的壮举。
以下是对建议内容的简要概述:
- 创建一个注册表项,告诉 Windows 在重新启动时删除文件
- 使用 ping 命令启动 CMD 等待几秒钟,然后删除文件
当然,正如评论中所述,这两者都有其缺点。
但是,下面概述的这种方法会起作用吗?
有两个可执行文件:Program.exe 和 Cleaner.exe。前者是程序本身,后者是删除 Program.exe 及其本身的应用程序(如果它被加载到内存中,正如我即将解释的那样)。Program.exe(具有依赖项)是否可以将所有没有任何依赖项的 Cleaner.exe加载到内存中并运行它?
如果可以的话,是否可以将 Cleaner.exe 打包到 Program.exe 中,加载到内存中并运行?