Вниз
Скачать: 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.037 c
1-1082853146
val_5
2004-04-25 04:32
2004.04.11
препроцессорная переменная - где компил: D6 или D7


3-1079461967
ginger
2004-03-16 21:32
2004.04.11
IB и SQL Server


14-1082357056
Sectey
2004-04-19 10:44
2004.04.11
Помогите найти Банников Н.А.


14-1082240894
copyr25
2004-04-18 02:28
2004.04.11
50 лет рок-энд-ролу


14-1081916840
Vlad Oshin
2004-04-14 08:27
2004.04.11
Зачем убрали IP из коментов в постах? :)




   Наверх