Загрузка...

Запрещаем запуск копии программы через Автогенерацию Mutex

Тема в разделе C# создана пользователем r3xq1 13 фев 2019. 217 просмотров

  1. r3xq1
    r3xq1 Автор темы 13 фев 2019 https://t.me/DarkSoft_Extra 119 27 июл 2018
    Создаём класс MutEx и запишем в него данный код ниже:

    Код
    using System.Reflection;
    using System.Runtime.InteropServices;
    using System.Threading;

    internal static class MutEx
    {
    public static bool InstanceCheck
    {
    get
    {
    new Mutex(true, ((GuidAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(GuidAttribute), false).GetValue(0)).Value.ToString(), out bool isNew);
    return isNew ? true : false;
    }
    }
    }
    И теперь для проверки нам достаточно сделать так:
    Код
    // Можно сделать на оборот как хотите ( просто уберите знак ! )
    if (!MutEx.InstanceCheck)
    {
    // Запущена копия? сейчас закроем...
    File.AppendAllText("AppEx.txt", "Fatal Error on running\r\n");
    Environment.Exit(-1);
    }
    else
    {
    // Ваш код.
    }
     
  2. _ZnZ_
    _ZnZ_ 13 фев 2019 63 7 май 2017
    Я конечно что все понимаю, но мне кажется что
    Код
    return isNew ? true : false;
    это тавтология, и можно было написать просто
    Код
    return isNew;
     
  3. Checkerchin
    Checkerchin 13 фев 2019 178 16 апр 2017
    Челик походу тупо спастил, тк так писать - себя не уважать.

    Действительно, почему он не написал так:
    Код
    return isNew;
     
Загрузка...
Top