![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
Всем доброго времени суток. Столкнулся с таким вопросом, как запретить запуск 2 копий программы, и в том случаи если программа свернута, её развернуть и сделать её окно активным.
Код:
Последний раз редактировалось -Jack-; 06.10.2012 в 01:19. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
По поводу OpenMutex - это я дополнил, спасибо, но вот загвоздка по поводу развернуть окно - осталась
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Пусть мютектс пытается создасться, и вернет результат. Если успешно, то и вы продолжнаете запуск программы, иначе EPIC FAIL.
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
С этим я разобрался, спасибо ... Вопрос остается в том, как развернуть первую копию приложения
Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Никак. Они друг о друге не знают. Вариант без мютексов я вам по ссылке давал.
|
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
Да здравствуйте, как же никак ...?!
Цитата:
Возможно искать окно не только по названию, но и по другим каким либо параметрам ? Последний раз редактировалось Stilet; 06.10.2012 в 12:52. |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
-Jack-, по классу окна. Первый параетр FindWindow.
Интересно, почему вы так к мютексам привязались? |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
![]()
Теоретически есть более простой и широко известный вариант проверки на запуск 2-го экземпляра приложения.
Код в dpr: Код:
Этот вариант, где есть и попутная активизация первого экземпляра, основан на поиске нужного окна в системе и его активации. Т.е. мы пытаемся активизировать окно уже "чужого" приложения. По-другому сделано в варианте, который предлагает Человек_Борща на своем сайте (ссылка в этой теме есть). Там активацию экземпляра приложения делает сам экземпляр приложения (первый который). А это уже совсем другой результат - при запуске второго экземпляра первый выскакивает поверх всех окон, все его кнопки работосопособны, а второй не запускается. И пусть этот вариант несколько тяжеловеснее, но работает он так как нам надо, а не винде. Проверено на Д7. |
![]() |
![]() |
![]() |
#10 |
instagram
Участник клуба
Регистрация: 24.05.2008
Сообщений: 1,451
|
![]()
или вот компонент 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 |