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

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

Меню в чужом окне... [D6, Win95/98, WinXP]


BAHO ©   (2002-05-13 02:24:00) 

Здравствуйте...
Разскажите как зная хендл чужого окна
разместить в нем своё заранее созданное меню...?
и обрабатывать события в меню...
Спасибо.!


BAHO   (2002-05-15 02:44:00) [1]

А есть способы проще ? (Без хука)
Я тут нарыл SetMenu(MHL:MHDL) но оно плохо пашет
меню не остаётся на долго(наверно прога обнавляет своё меню)...


Cobalt   (2002-05-13 23:59:00) [2]

1)Внедряй ДЛЛ в чужой процесс с помощью хука,
2)Посылаешь( SendMessage) тут же этому процессу сообщение типа WM_NULL
3)При первом же хуке //Это происходит до возврата из SendMessageв адресном пространстве чужого процесса
3а)В процессе загружаешь свою ДЛЛ еще раз (что бы можно было снять хук за ненадобностью)
3б)Перекрываешь функцию нужного тебе окна, создаешь меню и т.д.
4)Снимаешь хук, т.к. твоя ДЛЛ-ка уже внедрена и действует автоматически

Примечания - все ф-ии, которые ты будешь вызывать "находясь в чужом окне", должну быть локализованы в ДЛЛ-ке.
Если же тебе надо взаимодействовать "оттуда" с твоей прогой, то реализуй межпроцессорное взаимодействие на основе MAP-файлов (CreateFileMapping) и/или оконных сообщений (WM_CopyDATA) и/или DDE-общение.


Наверх

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