Название: Как сделать чтобы запускался только один экземпляр программы Отправлено: яков от Март 22, 2006, 15:25 Как сделать чтобы запускался только один экземпляр программы.
Спасибо Название: Как сделать чтобы запускался только один экземпляр программы Отправлено: Sergeich от Март 22, 2006, 17:16 В Solutions есть класс QtSingleApplication
Название: Re: Как сделать чтобы запускался только один экземпляр программы Отправлено: deMax от Октябрь 18, 2013, 10:48 А если у программы есть еще один режим(при запуске с параметром, и само приложение немного отличается)?
Т.е. приложение без параметров может существовать в единственном варианте, а запуск с параметром любое количество раз. Название: Re: Как сделать чтобы запускался только один экземпляр программы Отправлено: kambala от Октябрь 18, 2013, 14:22 ну используй QtSingleApplication и просто не выходи из main если есть параметр да и все
Название: Re: Как сделать чтобы запускался только один экземпляр программы Отправлено: deMax от Октябрь 18, 2013, 15:41 А как определить тип уже запущенного приложения (с параметрами его запустили или без).
Название: Re: Как сделать чтобы запускался только один экземпляр программы Отправлено: Old от Октябрь 18, 2013, 15:51 А как определить тип уже запущенного приложения (с параметрами его запустили или без). У QtSingleApplication вроде есть sendMessage и сигнал messageReceived для общения между instances.Название: Re: Как сделать чтобы запускался только один экземпляр программы Отправлено: deMax от Октябрь 28, 2013, 12:00 Сделал пока так, но периодически приложение вылетает(то нормально скомпилит, то при запуске сразу ошибка)
Код: #if defined(Q_WS_WIN) Название: Re: Как сделать чтобы запускался только один экземпляр программы Отправлено: Alex Custov от Октябрь 28, 2013, 12:57 Цитировать GetWindowText(hwnd,title,sizeof(title)); Переполнение буфера, и код возврата не проверяется. Если уж есть #ifdef UNICODE, то и TCHAR нужно вместо WCHAR. Название: Re: Как сделать чтобы запускался только один экземпляр программы Отправлено: Serr500 от Октябрь 28, 2013, 14:38 Лучше так:
Код: bool Result = true; Название: Re: Как сделать чтобы запускался только один экземпляр программы Отправлено: deMax от Октябрь 28, 2013, 15:05 Alex Custov , Serr500 , спасибо. Давно не работал с винапи и уже забыл, неудачный скопипастенный пример.
return !Result; - здесь нужно отрицание. Название: Re: Как сделать чтобы запускался только один экземпляр программы Отправлено: Serr500 от Октябрь 28, 2013, 15:19 return !Result; - здесь нужно отрицание. Упс... Недосмотрел. Исправил. |