@TechNOIR

Как самоуничтожить программу при невыполнении условия?

У меня идет условие в скрипте. Надо чтобы при условии "Это не тот диск" файл который запускается, удалялся. То есть текущий exeшник. Но не удается соответственно. Потому что занят. Как можно решить данную проблему?

if (!curdir.StartsWith("P")){
                Console.WriteLine("Это не тот диск");
                string script_name = System.Reflection.Assembly.GetEntryAssembly().Location;
                Console.WriteLine(script_name);
                File.Delete(script_name);
                Thread.Sleep(20000);
            }
            else
            {
                Console.WriteLine("Это тот диск!");
                Thread.Sleep(20000);
            }
  • Вопрос задан
  • 652 просмотра
Пригласить эксперта
Ответы на вопрос 2
devspec
@devspec
Помогло? Отметь решением
Нужен второй процесс, который будет удалять первый. По другому никак.
Ответ написан
Комментировать
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
любопытно..
- можно создать процесс в памяти не из файла, и передать ему управление
- чем вас не устраивает просто отказ от работы? )) .. начнем с того что ни кто не запрещает, не акредитованному пользователю, иметь копию в downloads (и тд) .. закончим тем, что без применения дотфускатора (хотя бы бесплатного) любая школота, с достаточным энтузиазмом, вылечит вашу "защиту"

ps удалять нет смысла, если оригинал не защищен, хотя бы дотфускатором. если защищен - вряд ли стоит так заморачиваться, достаточно отказаться от работы

pps тоже думал о привязках - мне больше нравится идея привязки к SID системы или пользователя. гарантировано уникально, зато можно позволить пользователю менять диск на больший или более быстрый.. и даже менять комп.. (в рамках одной сети сама винда начнет визг, при попытке дублирования SID ос, а вот SID юзера... в рамках корпоративного AD - да, может белее чем тиражироваться) (но кто запрещает проверять пару сидов сразу?)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы