Как запретить запуск второй копии программы C#

Всем привет! Сейчас я покажу еще один вариант запрета запуска второй копии приложения, с использованием языка C#.

Для этого в проекте создайте фаил .cs в него поместите следующий код.

 class StartClass
    {
        [STAThread]
        static void Main(string[] args)
        {
            SingleInstanceApplicationWrapper startWrapper = new SingleInstanceApplicationWrapper();
            startWrapper.Run(args);
        }
    }

    public class SingleInstanceApplicationWrapper : Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
    {


        public SingleInstanceApplicationWrapper()
        {
            // Включаем режим single-instance.
            this.IsSingleInstance = true;
        }

        private Class1 _app;

        protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs eventArgs)
        {
            _app = new Class1();
            _app.Run();
            return false;
        }
        protected override void OnStartupNextInstance(Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs eventArgs)
        {
            Application.Current.MainWindow.Activate();
        }
    }

    class Class1 : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // загружаем главное окно.
            MainWindow window = new MainWindow();
            this.MainWindow = window;
            window.Show();
        }
    }

 

А свойствах проекта изменить автоматически запускаемый объект на StartClass.

Таким образом, теперь более одной копии приложения не возможно запустить.

Обновлено: 11.02.2021 — 16:18

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.