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

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

Найти хэндл кнопки программы свернутой в трей ? [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.


Наверх

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