powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# wpf закрытие второго экземпляра приложения
2 сообщений из 2, страница 1 из 1
c# wpf закрытие второго экземпляра приложения
    #39602117
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Подскажите пожалуйста, как можно правильно закрыть второй запущенный экземпляр приложения и перевести фокус на первый экземпляр приложения?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
class App : Application
{
    public static Mutex InstanceCheckMutex;

    protected override void OnStartup(StartupEventArgs args)
    {
        base.OnStartup(args);

        bool isNew;
        InstanceCheckMutex = new Mutex(true, "MyApplication", out isNew);
        if (!isNew)
        {
               MessageBox.Show(@"Приложение уже открыто");
               return;
        }
    }
}
...
Рейтинг: 0 / 0
c# wpf закрытие второго экземпляра приложения
    #39602122
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае нужно использовать не мьютекс, а EventWaitHandle.
Судя по
Код: c#
1.
protected override void OnStartup(StartupEventArgs args)


приложение на WPF. Велосипед для такого случая (и с использованием EventWaitHandle) уже изобретен: http://blogs.microsoft.co.il/maxim/2010/02/13/single-instance-application-manager/
Для активации окна первого приложения в коллбеке проверки инстанса выполнить с синхронизацией на диспетчере UI-потока
Код: c#
1.
2.
Application.Current.MainWindow.Show();
Application.Current.MainWindow.ACtivate();
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# wpf закрытие второго экземпляра приложения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]