![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Urvin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
Мне необходимо сделать защиту от запуска второй копии приложения.
При попытке запуска появляется ранее запущенная копия. Всегда пользовался и был рад следующему коду:
Но с удивлением обнаружил, что в CodeGear данная конструкция не работает. Не ругется, руками не машет, но позволяет запустить несколько копий приложения. Я в панике. подскажите, что сделать? |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Потому что в 2007 изменена концепция главного окна.
Теперь оным является не Application, а главная форма. Вот её хэндл и ищи. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Urvin, потому что в 2007 версии отделили окно приложения, от окна главной формы, теперь это разные окна.
GetWindow(Handle, gw_HWndFirst); - теперь неверно, можно попробовать GetWindow(Application.Handle, gw_HWndFirst); Добавлено через 42 секунды упс. опередил ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Urvin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
простите, но... можно как для дебилов?
![]() |
|||
|
||||
Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
||||
|
||||
Esperito |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 2.9.2007 Репутация: нет Всего: 3 |
Рекомендую мьютекс.
|
|||
|
||||
Urvin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
Самый рабочий код с мьютексами, как ни странно, оказался наименее замороченным.
Действительно, вторая копия приложения не стартует.
Как можно изменить данный код, чтобы на экран показывалась предыдущая работающая копия программы? ![]() |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 10 Всего: 80 |
Найти нужное окно FindWindow и поместить его на передний план SetForegroundWindow
Добавлено через 5 минут и 5 секунд Впрочем, в твоем первом посте все есть |
|||
|
||||
Urvin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
я все же не справляюсь
![]() |
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
Ы? |
|||
|
||||
Urvin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
Qu1nt, твой пример не показывает форму в том случае, если она была свернута.
только что справился по иной технологии, взятой на http://www.delphikingdom.com/asp/viewitem.asp?catalogid=904 Сильно урезал-доподрезал и вот что получил: http://urvin.ifolder.ru/5196756 Нашел ошибочку ;) исправляем на
![]() Это сообщение отредактировал(а) Urvin - 2.2.2008, 14:03 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |