Russian Qt Forum
Ноябрь 23, 2024, 00:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Запрет запуска 2-й копии бинарника  (Прочитано 4922 раз)
RedDog
Гость
« : Апрель 21, 2011, 08:35 »

Как средствами Qt сделать невозможным запуск 2-й копии бинарника, при этом, если пользователь пытается запустить 2-ю копию, то она не запускалась, открывалось окно 1-й копии.
Под виндой помниться это делалось глобальным мутексом и его проверкой при старте. А как сделать это кроссплатформенно?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Апрель 21, 2011, 08:40 »

QtSingleApplication
Записан

Qt 5.11/4.8.7 (X11/Win)
merke
Гость
« Ответ #2 : Апрель 21, 2011, 08:41 »

Есть готовый класс QSingleApplication

Я например под виндой делал следующее: при загрузке проги проверял её имя в процессах, если там было больше одной запущенной проги, то закрывался. Я думаю это же можно проделать и в линуксе. А для того чтобы при запуске второй проги, она закрывалась и первая копия показывалась, можно использовать пайпы: когда прога загружается и видет чтоона в единственном экземпляре запущена, создаешь именованный пайп и прослушиваешь его. Если когда запускаешься и видишь, что ты ты уже вторая копия, коннектившься в именованному пайпу и шлешь произвольную команду, первая копия получив твою команду показывает себя. а вторая копия уже в этот момент завершается.
Записан
RedDog
Гость
« Ответ #3 : Апрель 21, 2011, 10:14 »

Скачал сырцы, а как их теперь в Qt установить?
ЗЫ: Сборка Qt статическая.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 23.