процедура вызова exe только один раз - PullRequest
2 голосов
/ 02 февраля 2010

Я использую process.info, процесс start (); чтобы вызвать exe-файл, нажмите кнопку в c # .net, но каждый раз, когда я нажимаю на кнопку, он вызывает exe-файл и открывает дубликат файла на панели задач. Я хочу просто развернуть исполняемый файл, который уже был на панели задач.

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

Ответы [ 2 ]

1 голос
/ 07 февраля 2010

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

0 голосов
/ 02 февраля 2010

это должно поставить вас на правую ногу: http://www.webdevbros.net/2007/11/14/singelton-application-with-c/

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