Ринат Идрисов
Ринат Идрисов | Репутация: 98 (Без статуса) 10 июня 2008 в 10:36
Как запретить повторный запуск программы?
любой программы!
Дмитрий Исканцев
Дмитрий Исканцев | Репутация: 101 (Кандидат) 10 июня 2008 в 11:20

Можно переменную хранить где-нибудь о запуске в Реестре, БД, файле... и проверять ее при каждом запуске...

Ринат Галиулин
Ринат Галиулин | Репутация: 109 (Кандидат) 10 июня 2008 в 11:44

Получить хендл окна и во время запуска проверять. То есть проверить нет ли открытого окна с таким хенлом, если есть то закрыть

Олег Болотников
Олег Болотников | Репутация: 102 (Кандидат) 10 июня 2008 в 13:04

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

Anton Shavrov
Anton Shavrov | Репутация: 101 (Кандидат) 10 июня 2008 в 13:19

мжно использовать паттерн singleton

Anthony Shoumikhin
Anthony Shoumikhin | Репутация: 101 (Кандидат) 10 июня 2008 в 15:00

Можно именовать не только мьютекс между прочим!!!

Makc Sab
Makc Sab | Репутация: 105 (Кандидат) 11 июня 2008 в 10:05

По поводу мъютексов - при создании, если мьютекс с таким именем уже создан, он вернет его хендл. Надо смотреть GetLastError - если вернет ERROR_ALREADY_EXISTS, то праграмма уже запущена.
Или использовать OpenMutex - Если вернула NULL, то приложение еще не запущено.

Владимир Тарасов
Владимир Тарасов | Репутация: 165 (Кандидат) 11 июня 2008 в 13:26

if [ /var/run/mysqld/mysqld.pid ] then exit 0 else "run ..." /// вообще, за такие вопросы... НЕ БЫВАЕТ ЛЮБЫХ ПРОГРАММ!!! Одних ОСей сколько? А уж програм... Некоторые должны запускаться в некотором количестве, а некотрые и нет... Програмист дожен принимать меры и предусмотреть "механизмы"...