Как максимизировать приложение первым экземпляром при попытке запустить новое - PullRequest
1 голос
/ 14 февраля 2009

Я хотел бы ограничить приложение только одним экземпляром, работающим на машине. Пока у меня есть это:

Mutex m = new Mutex(true, Name, out IsOwned);

if (!IsOwned)
{
    string message = "There is already a copy of the application '" +
        Name + 
        "' running. Please close that application before starting a new one.";

    MessageBox.Show(message, "Error", 
        MessageBoxButtons.OK, MessageBoxIcon.Information);

    Environment.Exit(0);
}
else
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

И он выходит, но есть ли способ максимизировать первый экземпляр до его закрытия?

1 Ответ

2 голосов
/ 14 февраля 2009

Это не тот способ, которым вы хотите обрабатывать несколько экземпляров приложения. Принятая практика - просто переключиться на работающий экземпляр приложения.

При этом вы можете легко создать класс, производный от WindowsFormsApplicationBase (в пространстве имен Microsoft.VisualBasic). Этот ответ обрисовывает в общих чертах, как вы это сделаете, и указывает, что вам нужен один экземпляр, а также как обрабатывать то, что происходит, когда вы пытаетесь запустить новый экземпляр:

Открытие «известного типа файла» в запущенном экземпляре пользовательского приложения - .NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...