|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.10.2012, 01:09 | #1 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
запуск копии программы [Delphi7]
Всем доброго времени суток. Столкнулся с таким вопросом, как запретить запуск 2 копий программы, и в том случаи если программа свернута, её развернуть и сделать её окно активным.
Код:
Последний раз редактировалось -Jack-; 06.10.2012 в 01:19. |
06.10.2012, 01:26 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
|
06.10.2012, 01:53 | #3 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
По поводу OpenMutex - это я дополнил, спасибо, но вот загвоздка по поводу развернуть окно - осталась
|
06.10.2012, 01:57 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Пусть мютектс пытается создасться, и вернет результат. Если успешно, то и вы продолжнаете запуск программы, иначе EPIC FAIL.
|
06.10.2012, 02:01 | #5 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
С этим я разобрался, спасибо ... Вопрос остается в том, как развернуть первую копию приложения
Цитата:
|
|
06.10.2012, 02:45 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Никак. Они друг о друге не знают. Вариант без мютексов я вам по ссылке давал.
|
06.10.2012, 02:53 | #7 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
Да здравствуйте, как же никак ...?!
Цитата:
Возможно искать окно не только по названию, но и по другим каким либо параметрам ? Последний раз редактировалось Stilet; 06.10.2012 в 12:52. |
|
06.10.2012, 08:12 | #8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
-Jack-, по классу окна. Первый параетр FindWindow.
Интересно, почему вы так к мютексам привязались? |
06.10.2012, 10:04 | #9 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Теоретически есть более простой и широко известный вариант проверки на запуск 2-го экземпляра приложения.
Код в dpr: Код:
Этот вариант, где есть и попутная активизация первого экземпляра, основан на поиске нужного окна в системе и его активации. Т.е. мы пытаемся активизировать окно уже "чужого" приложения. По-другому сделано в варианте, который предлагает Человек_Борща на своем сайте (ссылка в этой теме есть). Там активацию экземпляра приложения делает сам экземпляр приложения (первый который). А это уже совсем другой результат - при запуске второго экземпляра первый выскакивает поверх всех окон, все его кнопки работосопособны, а второй не запускается. И пусть этот вариант несколько тяжеловеснее, но работает он так как нам надо, а не винде. Проверено на Д7. |
06.10.2012, 10:48 | #10 |
instagram
Участник клуба
Регистрация: 24.05.2008
Сообщений: 1,451
|
OneInstancesEx
или вот компонент OneInstancesEx
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запуск копии webbrowser с подстановкой адреса | s2004 | Win Api | 3 | 14.10.2012 19:12 |
как разрешить запуск второй копии чужого приложения | s1s1s1 | Общие вопросы Delphi | 4 | 02.11.2011 01:47 |
Запуск только одной копии приложения | Casper-SC | Общие вопросы .NET | 1 | 18.07.2010 02:06 |
Обновление копии программы в оперативной памяти. | Garacio_cain | Общие вопросы Delphi | 5 | 17.05.2009 10:29 |