LINUX.ORG.RU

Чтоб мультиплатформенно --- под каждую платформу разный тест...

stassats ★★★★
()
Ответ на: комментарий от Deleted

> нигде толком не нашел

ты на каждый чих ищешь в инете готовые заготовки? программист-конструктор, блин. а подумать - это уже моветон?

friday ★★★
()

Используй pid-файлы.

anonymous
()

Когда я столкнулся с такой задачей, я, не мудрствуя лукаво, просто изготовил объект QSettings и завел там специальный ключ в который писал текущее время(скажем, каждые пару секунд). Когда стартовала вторая копия, она проверяла наличие этого ключа. Если время отличалось от текущего не более, чем на две секунды, значит запущена еще одна копия. Тогда та копия, что запущена последней просто записывала ключ что-нибудь типа jump up и завершалась. Вторая, более старая, копия, не более чем через две секунды, увидев ключ "jump up", должна показать свое окно. В принципе работало неплохо. Разве что не достаточно красиво, зато кросплатформенно.

anonymous
()
Ответ на: комментарий от anonymous

imho, лучше, все-таки, через pid-файлы. а взаимодействие между копиями - через сигналы

friday ★★★
()

pid-файлы, как у же было сказано; если хочется, чтобы при запуске второй копии что-то произошло с первой (ну там, окно активизировалось) - то можно слушать на UNIX socket в домашке пользователя, или использовать DBUS/DCOP.

А если нужно и под винду тоже - то не знаю.

anonymous
()
Ответ на: комментарий от anonymous

А чем семафоры и другие средства IPC не устраивают?

I3rain
()
Ответ на: комментарий от anonymous

> pid-файлы, как у же было сказано; если хочется, чтобы при запуске второй копии что-то произошло с первой (ну там, окно активизировалось) - то можно слушать на UNIX socket в домашке пользователя, или использовать DBUS/DCOP.

кросплатформенность тогда сразу идет лесом

friday ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.