Название: Запрет запуска 2-й копии бинарника Отправлено: RedDog от Апрель 21, 2011, 08:35 Как средствами Qt сделать невозможным запуск 2-й копии бинарника, при этом, если пользователь пытается запустить 2-ю копию, то она не запускалась, открывалось окно 1-й копии.
Под виндой помниться это делалось глобальным мутексом и его проверкой при старте. А как сделать это кроссплатформенно? Название: Re: Запрет запуска 2-й копии бинарника Отправлено: GreatSnake от Апрель 21, 2011, 08:40 QtSingleApplication (http://doc.qt.nokia.com/solutions/4/qtsingleapplication/qtsingleapplication.html)
Название: Re: Запрет запуска 2-й копии бинарника Отправлено: merke от Апрель 21, 2011, 08:41 Есть готовый класс QSingleApplication
Я например под виндой делал следующее: при загрузке проги проверял её имя в процессах, если там было больше одной запущенной проги, то закрывался. Я думаю это же можно проделать и в линуксе. А для того чтобы при запуске второй проги, она закрывалась и первая копия показывалась, можно использовать пайпы: когда прога загружается и видет чтоона в единственном экземпляре запущена, создаешь именованный пайп и прослушиваешь его. Если когда запускаешься и видишь, что ты ты уже вторая копия, коннектившься в именованному пайпу и шлешь произвольную команду, первая копия получив твою команду показывает себя. а вторая копия уже в этот момент завершается. Название: Re: Запрет запуска 2-й копии бинарника Отправлено: RedDog от Апрель 21, 2011, 10:14 Скачал сырцы, а как их теперь в Qt установить?
ЗЫ: Сборка Qt статическая. |