Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > Вторая копия приложения в CodeGear |
Автор: Urvin 30.1.2008, 17:12 | ||
Мне необходимо сделать защиту от запуска второй копии приложения. При попытке запуска появляется ранее запущенная копия. Всегда пользовался и был рад следующему коду:
Но с удивлением обнаружил, что в CodeGear данная конструкция не работает. Не ругется, руками не машет, но позволяет запустить несколько копий приложения. Я в панике. подскажите, что сделать? |
Автор: Snowy 30.1.2008, 17:28 |
Потому что в 2007 изменена концепция главного окна. Теперь оным является не Application, а главная форма. Вот её хэндл и ищи. |
Автор: Alexeis 30.1.2008, 17:31 |
Urvin, потому что в 2007 версии отделили окно приложения, от окна главной формы, теперь это разные окна. GetWindow(Handle, gw_HWndFirst); - теперь неверно, можно попробовать GetWindow(Application.Handle, gw_HWndFirst); Добавлено через 42 секунды упс. опередил ![]() |
Автор: Urvin 30.1.2008, 17:36 |
простите, но... можно как для дебилов? ![]() |
Автор: Rohoss 30.1.2008, 19:21 |
В 2006 тоже? |
Автор: Esperito 30.1.2008, 19:25 |
Рекомендую мьютекс. |
Автор: Urvin 30.1.2008, 21:15 | ||
Самый рабочий код с мьютексами, как ни странно, оказался наименее замороченным. Действительно, вторая копия приложения не стартует.
Как можно изменить данный код, чтобы на экран показывалась предыдущая работающая копия программы? ![]() |
Автор: VICTAR 30.1.2008, 22:57 |
Найти нужное окно FindWindow и поместить его на передний план SetForegroundWindow Добавлено через 5 минут и 5 секунд Впрочем, в твоем первом посте все есть |
Автор: Urvin 1.2.2008, 20:26 |
я все же не справляюсь ![]() |
Автор: Qu1nt 2.2.2008, 13:10 | ||
Ы? |
Автор: Urvin 2.2.2008, 13:31 | ||
Qu1nt, твой пример не показывает форму в том случае, если она была свернута. только что справился по иной технологии, взятой на http://www.delphikingdom.com/asp/viewitem.asp?catalogid=904 Сильно урезал-доподрезал и вот что получил: http://urvin.ifolder.ru/5196756 Нашел ошибочку ;) исправляем на
![]() |