![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
горячие клавиши в webbrowser [D6, WinXP]
Oleg_ © (2004-03-21 23:24:00)Для отрабатывания сабж использую
id2 := GlobalAddAtom('Hotkey_m1');
RegisterHotKey(self.Handle,id2,0,107);
обрабатываю нажатия в процедуре
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
и если активно другое приложение, скажем ворд, сообщение надо бы вернуть.
Активное окно нахожу через GetForegroundWindow
Логично из TWMHotKey вытянуть сообщение и отправить
PostMessage(GetForegroundWindow,msg.Msg,0,0);
но в ворде так и не отображается нажатие клавиши -(
Заранее спасибо
nikkie (2004-03-22 13:28:00) [1]видишь, как я угадал ;)
Oleg_ (2004-03-22 12:47:00) [2]На самом деле
postMessage(GetForegroundWindow,WM_KEYDOWN,ord('t'),0);
postMessage(GetForegroundWindow,WM_KEYUP,ord('t'),0);
эквивалентно нажатию F5
nikkie (2004-03-22 12:15:00) [3]если стоит нужда эмулировать нажатие клавиши, то проще воспользоваться keybd_event.
а если спортивный интерес - то во-первых, почему lParam=0, во-вторых, почему SendMessage, в-третьих, Ord('t')=116=VK_F5.
Oleg_ (2004-03-22 12:03:00) [4]Это уже скорее спортивный интерес, ведь должен быть какой то способ форвардирования или пропуска "горячим обработчиком" нажатия клавиши.
странно почему не дышит нажатие некоторой буквы через сообщения
nikkie (2004-03-22 11:47:00) [5]а зачем наворачивать такое с hot-key?
я, собственно, предположил, что ты пытаешься сделать shortcut с помощью hot-key. если я не угадал, то извиняюсь.
Oleg_ (2004-03-22 10:49:00) [6]если перевести вопрос в плоскость именно RegisterHotKey
пусть даже никакого webbrowser нету, как можно или пропустить зарегестрированное сочетание клавиш на обработку активным приложением или послать активному приложению сообщение о нажатии клавиши?
SendMessage(GetForegroundWindow,WM_KEYDOWN,ord('t'),0);
SendMessage(GetForegroundWindow,WM_KEYUP,ord('t'),0);
не работает
а вот
PostMessage(GetForegroundWindow,WM_QUIT,0,0);
закрывает активное приложение
nikkie (2004-03-22 00:22:00) [7]когда скачаешь EmbeddedWB, обрати внимание на
http://www.euromind.com/iedelphi/embeddedwb/ontranslateaccelerator.htm