Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как по полученному мьютексу вывести приложение вперед? [D7, WinXP]


Aleksandr ©   (2004-03-15 12:13:00) 

При запуске программы проверяю ее наличие при помощи

 XHM := OpenMutex(MUTEX_ALL_ACCESS, false, 'ATMutex');

Соответственно, если мьютекс получен, то программа не запускается, а должен выйти на передний план ее предыдущий экземпляр. Есть ли какой-то способ сделать это по данному мьютексу (не хочется плодить дополнительный код на FindWindow, да и слышал я, что это не есть современная и надежная функция)?


Aleksandr   (2004-03-15 12:44:00) [1]

Удалено модератором
Примечание: Дубль


Aleksandr   (2004-03-15 12:30:00) [2]

Ясна. Спасибо.


Digitman   (2004-03-15 12:24:00) [3]

удобней и надежней будет воспользоваться для этой цели файлом отображенным в память (см. CreateFileMapping, MapViewOfFile)

1-й экз-р создает MMF и записывает в него хэндл своего гл.окна
2-й экз-р пытается создать/открыть MMF, получает отказ (MMF уже открыт 1-м экз-ром), считывает из MMF хэндл гл.окна 1-го экз-ра и посылает ему WM_ACTIVATEAPP, после чего немедленно завершает свою работу


evvcom   (2004-03-15 12:22:00) [4]

Никак. Для этого требуется Handle окна. Поиск через EnumWindows с некоторым последующим обменом данными, чтобы удостовериться, что это то окно которое нужно, и посылкой соответствующей команды после этого.


Наверх

Титульная страница Поиск, карта сайта Написать письмо