![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Найти хэндл кнопки программы свернутой в трей ? [D6, WinXP]
slaga © (2005-08-08 18:07:00)Добрый день у меня такой вопрос, мне нужно отследить момент запуска второй копии программы и кроме этого запретить запуск второй копии и в момент закрытия второй копии программы было бы неплохо сделать первую копию программы активной.
Первый пункт я уже сделал, осталось сделаь активной первую копию программы, но тут такая сложность, программы свернута в трей, я хочу найти хендл пункта меню "Открыть", которому я пошлю сообщение типа:
SendMessage(Hndl, BM_CLICK, 0,0);
Но проблема в том что я незнаю как найти хендл этого пункта меню.
Подскажите пожалуйста.
slaga (2005-08-08 18:58:00) [1]Сейчас гляну, спасибо.
Fay (2005-08-08 18:43:00) [2]slaga © (08.08.05 18:28) [5]
посмотри почту
slaga (2005-08-08 18:28:00) [3]неполучается, я делаю вот так:
if FindWindow('TMenuItem', 'Открыть') <> 0 then
ShowMessage('Нашел!');
не находит такого окна :(
Fay (2005-08-08 18:25:00) [4]2 slaga © (08.08.05 18:23) [3]
>> я уже имею дескрипшен главного окна
FindWindow? Шли тогда напрямую.
Ловить можно в [Additioonal]->ApplicationEvents
slaga (2005-08-08 18:23:00) [5]Дополнительная информация:
Я когда определяю повторность запускаемой проги я уже имею дескрипшен главного окна, может используя это можно найти дескрипшен кнопки ?
slaga (2005-08-08 18:20:00) [6]А как ловить ?
Fay (2005-08-08 18:15:00) [7]2 slaga © (08.08.05 18:07)
А вот запущенная прога знает Handle своей кнопки.
Отправь broadcast message, поймаешь - делай что хотел.
Applications that need to communicate using HWND_BROADCAST should use the RegisterWindowMessage function to obtain a unique message for inter-application communication.