Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

горячие клавиши в webbrowser   Найти похожие ветки 

 
Oleg_   (2004-03-21 23:24) [0]

Для отрабатывания сабж  использую

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 00:22) [1]

когда скачаешь EmbeddedWB, обрати внимание на
http://www.euromind.com/iedelphi/embeddedwb/ontranslateaccelerator.htm


 
Oleg_   (2004-03-22 10:49) [2]

если перевести вопрос в плоскость именно 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 11:47) [3]

а зачем наворачивать такое с hot-key?

я, собственно, предположил, что ты пытаешься сделать shortcut с помощью hot-key. если я не угадал, то извиняюсь.


 
Oleg_   (2004-03-22 12:03) [4]

Это уже скорее спортивный интерес, ведь должен быть какой то способ форвардирования или пропуска "горячим обработчиком" нажатия клавиши.
странно почему не дышит нажатие некоторой буквы через сообщения


 
nikkie ©   (2004-03-22 12:15) [5]

если стоит нужда эмулировать нажатие клавиши, то проще воспользоваться keybd_event.

а если спортивный интерес - то во-первых, почему lParam=0, во-вторых, почему SendMessage, в-третьих, Ord("t")=116=VK_F5.


 
Oleg_   (2004-03-22 12:47) [6]

На самом деле
postMessage(GetForegroundWindow,WM_KEYDOWN,ord("t"),0);
postMessage(GetForegroundWindow,WM_KEYUP,ord("t"),0);
эквивалентно  нажатию F5


 
nikkie ©   (2004-03-22 13:28) [7]

видишь, как я угадал ;)



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
3-1081653110
MadAngel
2004-04-11 07:11
2004.04.11
Поиск


3-1081754066
pashtet
2004-04-12 11:14
2004.04.11
Почему не используется индекс запросе..?


3-1078997841
RavenD
2004-03-11 12:37
2004.04.11
почему теряются данные при запросе?


4-1076071430
dik
2004-02-06 15:43
2004.04.11
TRichEdit


11-1068202747
Sagrer
2003-11-07 13:59
2004.04.11
Можно ли сделать MsgOK модальным?