| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Hook на системную клавишу |
| Автор: Keeper89 30.3.2009, 21:51 |
| Доброго времени суток! На форме есть PopUp Menu. Необходимо установить хук на клавишу (или есть более рациональные способы?) вызова контекстного меню (та что правее пробела), при нажатии на которую меню будет закрываться. Чем меньше кода и внешних библиотек, тем лучше. Заранее спасибо. |
| Автор: Keeper89 31.3.2009, 19:27 | ||
Использую следующий код:
Как здесь обработать клавишу контекстного меню? |
| Автор: kami 31.3.2009, 19:45 |
| http://msdn.microsoft.com/en-us/library/ms646293.aspx и http://msdn.microsoft.com/en-us/library/ms645540(VS.85).aspx не помогут? |
| Автор: Keeper89 31.3.2009, 20:26 |
Да, спасибо, нашел нужный код клавиши. VK_APPS (0x5D) Applications key (Natural keyboard) |
| Автор: Keeper89 31.3.2009, 20:55 | ||
Дополнил код:
Но меню не исчезает... |
| Автор: kami 1.4.2009, 00:28 |
| В сам код не вникал - не компенентен в вопросах меню, но: 1. где вызов CallNextHookEx в случае, если nCode>=0 ? 2. Вы уверены, что нужно именно SendMessage, а не PostMessage? Все-таки рекомендуется завершить работу процедуры хука как можно быстрее, а SendMessage ждет, пока оконная процедура не обработает отправленное сообщение. (а может, оконная процедура вообще не в состоянии обработать сообщение именно из-за отсутствия CallNextHookEx) ? |