Как я могу удалить мое приложение С# (саморазрушение)? Вот два способа, которые, как я думаю, могут работать:
- Поставьте другую программу, которая удалит основную программу. Как эта удаленная программа удаляется тогда?
- Создайте процесс для CMD, который ждет несколько секунд, и удалит ваш файл. За эти несколько секунд вы закроете свое приложение.
Оба эти метода кажутся неэффективными. У меня такое ощущение, что в Windows есть встроенный флаг или что-то в этом роде, которое позволяет такие вещи. Как я должен это делать? Кроме того, можете ли вы предоставить примерный код?
ОБНОВЛЕНИЕ: Спасибо за все ваши ответы! Я попробую их и посмотрю, откуда это меня.
Прежде всего, некоторые люди спрашивают, почему я хочу, чтобы мое приложение это делало. Вот ответ: несколько дней назад я прочитал спецификацию проекта Aardvark, которую Джоэл Спольски опубликовал в своем блоге, и он упомянул, что клиентское приложение удалит себя после удаленного сеанса. Мне интересно, как это работает, и как, если мне когда-либо понадобится это сделать, я смогу совершить такой подвиг.
Вот небольшой обзор того, что было предложено:
- Создать запись реестра, в которой Windows сообщает об удалении файла при перезагрузке
- Запустите CMD с помощью команды ping, чтобы подождать несколько секунд, а затем удалите файл
Оба эти, конечно, имеют свои недостатки, как указано в комментариях.
Однако, работает ли такой способ, как указано ниже?
Существует два исполняемых файла: Program.exe и Cleaner.exe. Первая - сама программа, последняя - приложение, которое удаляет Program.exe и само по себе (если оно загружается в память, как я собираюсь объяснить). Возможно ли для Program.exe(с зависимостями) загрузить весь файл Cleaner.exe, который не имеет каких-либо зависимостей, в память и запустить его? p >
Если это возможно, может ли Cleaner.exe быть упакован внутри Program.exe, загружен в память и запущен?