2

開発者の皆様、こんにちは。

現在、私の創造的な不眠症セッションの 1 つの間に、C# を学びながら自分のプロジェクトに取り組んでいて、たまたま疑問に思いました - 自動削除アプリケーションを作成する方法はありますか?

さて、私を怠け者で研究をするのが苦手な人と間違えないでください。私は自分自身でいくつかの実験を行いました (File. 機能がそのようなタスクを実行できるようには見えなかったため、実際にはあまり実験していません - 驚くことではありませんが、実行中のアプリケーションを削除することに関しては、Windows はかなり消極的です) .

少し調べてみたところ、私の懸念のいくつかは真実であることがわかりました。そのような機能は、コマンド ライン プロセスまたは MOVEFILE_DELAY_UNTIL_REBOOT フラグを実行する必要があります。2 番目のオプションは問題外ですが、最初のオプションはまだやや面倒です。したがって、私はただ興味があります - このあたりのより経験豊富な CSharp 開発者のいずれかがそれを行う別の方法を見つけましたか? (理論的には、それは不可能に思えます。しかし、仲間の開発者を過小評価するのは愚かなことです)

4

2 に答える 2

1

可能なアプローチ...テストされていません...

別のFILE_FLAG_DELETE_ON_CLOSEフラグがありCreateFileます。

  • このフラグを使用して一時ファイルを作成し、そこに実行可能ファイルをコピーします。
  • その場所から 2 番目のインスタンスを開始し、パラメーターとして自身の場所へのパスを渡します
  • Sleep2 番目のインスタンスが開始された後 (学習目的で同期または基本が必要)
  • 新しいインスタンスで最初のファイルを削除し (最初のインスタンスが終了するまで再試行する場合があります)、quit.to.

その時点で、2 番目のファイルにはハンドルがなく、OS によっても削除されます。

于 2013-09-07T03:00:04.107 に答える