Вопрос

Я использую Process.info, начало процесса (); Чтобы вызвать кнопку EXE на кнопку C # .NET, но каждый раз, когда я нажимаю на кнопку, он вызывает EXE и открывает дубликат файл на панели задач. Я хочу просто максимизировать EXE, которая уже была на панели задач.

Я сталкиваюсь с проблемой, что снова и снова открывает один и тот же файл на кнопке нажима. Есть ли способ, которым он может открыть EXE только один раз и на кнопке нажмите, что он может максимизировать файл EXE, если уже открыт, а не делать дублированные записи?

Это было полезно?

Решение

Process.Start() Возвращает А. Process объект. То, что вы могли бы сделать, это иметь переменную класса (например, Process startedProcess;) который инициализируется при нажатии кнопки. Если эта переменная нуль, что означает, что процесс еще не запущен, и это приложение должно быть запущено, в противном случае он уже работает, и мы должны игнорировать его.

Вот основной пример:

Process startedProcess = null;

public void button1_Clicked(object sender, EventArgs e)
{

     if ( startedProcess == null )
          startedProcess = Process.Start("path\\to\\process.exe");

}

Если вы хотите автоматически переключиться на это окно в случае, если приложение уже работает, .NET не имеет никаких встроенных методов для этого встроенным. Вам нужно будет dllimports из user32.dll. Примером можно найти в комментариях на этой странице: http://www.eggheadcafe.com/community/aspnet/14/21984/switch-to-another-runnin.aspx.

Другие советы

Это должно убрать вас на правой ноге:http://www.webdevbros.net/2007/11/14/singelton-aplication-with-c/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top