![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как по полученному мьютексу вывести приложение вперед? [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 с некоторым последующим обменом данными, чтобы удостовериться, что это то окно которое нужно, и посылкой соответствующей команды после этого.