Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.093 c
1-1082462076
msgipss
2004-04-20 15:54
2004.04.11
Для чего нужен TEvent из модуля SyncObjs


8-1076250934
Gav
2004-02-08 17:35
2004.04.11
Как получить осциллограмму записанного звука?


3-1079080641
Russko
2004-03-12 11:37
2004.04.11
Table is read only


6-1079111211
LanLan
2004-03-12 20:06
2004.04.11
Получение данных от клиентских компов ServerSocket1ClientRead


7-1079610137
Delph1
2004-03-18 14:42
2004.04.11
Как получить каталог рабочего стола в Delphi?




   Наверх