C#アプリを自動的に消去(自己破壊)するにはどうすればよいですか?これが私がうまくいくと思う2つの方法です:
- メインプログラムを削除する別のプログラムを提供します。しかし、この削除プログラムはどのように削除されますか?
- 数秒待ってからファイルを削除するCMDへのプロセスを作成します。これらの数秒間に、アプリケーションを閉じます。
これらの方法はどちらも非効率的です。Windowsには、そのような機能を可能にするフラグなどが組み込まれているように感じます。どうすればいいですか?また、サンプルコードを提供してもらえますか?
更新:すべての回答をありがとう!私はそれらを試してみて、それが私をどこに導くかを見ていきます。
まず第一に、なぜ私のアプリにこれをさせたいのかと尋ねる人がいます。答えは次のとおりです。数日前、JoelSpolskyがブログに投稿したProjectAardvarkの仕様を読みましたが、リモートセッション後にクライアントアプリが自動的に削除されるとのことでした。これがどのように機能するのか、そしてこれを行う必要がある場合、どのようにしてそのような偉業を達成できるのか疑問に思っています。
提案された内容の概要は次のとおりです。
- 再起動時にファイルを削除するようにWindowsに指示するレジストリエントリを作成します
- pingコマンドを使用してCMDを起動し、数秒待ってからファイルを削除します
もちろん、コメントで概説されているように、これらの両方には欠点があります。
しかし、以下に概説するような方法は機能しますか?
Program.exeとCleaner.exeの2つの実行可能ファイルがあります。前者はプログラム自体であり、後者はProgram.exeとそれ自体を削除するアプリです(これから説明するように、メモリにロードされている場合)。Program.exe(依存関係がある)が依存関係のないCleaner.exeをすべてメモリにロードして実行することは可能ですか?
これが可能な場合、Cleaner.exeをProgram.exe内にパッケージ化し、メモリにロードして実行できますか?