Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Вызов меню


Автор: COOLHack 21.10.2008, 21:10
Имеется программа. При сворачивании эта программа появляется в трее. При нажатии на иконку в трее правой кнопкой мышки появляется меню.

Как программно вызвать это самое меню? (нужно вызвать это меню в чужой проге).

Автор: Coder 22.10.2008, 02:36
Ну а хандлер меню знаешь?

TrackPopupMenu(hMenu1, TPM_LEFTALIGN, cur_pos.x, cur_pos.y, 0, hWnd, 0);

Автор: COOLHack 22.10.2008, 03:47
Как узнать хендл этого меню? Я знаю только хендл программы.

Автор: Rrader 22.10.2008, 10:54
Можно сэмулировать клик по иконке в трее. В аттаче пример от Girder, можно попробовать применить.

Автор: COOLHack 22.10.2008, 19:09
Пасиб, проблема решена, всем кто мне помог поставил по +, пасиб.

Автор: COOLHack 22.10.2008, 21:10
Всё таки кое что не удалось сделать. Подскажите как узнать хендл меню которое вызывается при нажатии на иконку в тре правой кнопкой мышки.

Автор: maxim1000 22.10.2008, 21:19
а его может и не быть вообще
программа вполне может при клике создавать новое меню, показывать его, а потом удалять

Автор: COOLHack 22.10.2008, 21:24
а как тогда вызвать это само меню зная лишь хендл программы?

Автор: Coder 23.10.2008, 07:14
COOLHack, зная хендл программы можно получить хендл главного меню (если оно есть) -  GetMenu(); В нем можно покапаться через GetSubMenu().

А pop-up меню в трее, видимо можно вызвать только эмуляцией нажатия.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)