Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

RegisterHotKey (KOL) [Delphi, Windows]


feens ©   (2005-07-28 00:03:00) 

Пробовал все варианты что нашел здесь и в FAQ но все равно программа не работает как надо - нечего не делает когда нажимаю "Q".

function appmsg(var Dummy_Self: PObj; var Msg: tagMSG;var Rslt:Integer):boolean;
begin
 result:=false;
 if (msg.message=WM_HOTKEY) and (msg.wParam=ord('q')) then begin
   h:=findwindow(nil,'windov');
   if h<>0 then sendmessage(h,WM_CLOSE,0,0);
   result:=true;
 end;
end;

begin
...
RegisterHotkey(applet.Handle, ord('q'), 0, ord('q') );
Applet.OnMessage := TOnMessage(MakeMethod( nil, @appmsg));
...
end.

Что здесь неправильно?

Программа только сидит в tray и ждет hotkey, потому handle у всех обьектах (TrayIcon, PopupMenu) есть applet. MCK не использую.


Thaddy   (2005-07-28 12:18:00) [1]

2dodfr: but only shift+ q won't work! that is simply uppercase. Alt or ctrl (or windows key) are necessary for the proper working of a hot key.


Dodfr   (2005-07-28 02:01:00) [2]

also with shift :-) and you can even mix them alll to make some complicated CTRL+SHIFT+ALT+A

Also your registerhotkey parameters is bad !

unique_id:=GlobalAddATOM('MyHotKey'); // idea to get some unique id

RegisterHotKey(form.Handle, unique_id, MOD_CONTROL + MOD_ALT + MOD_SHIFT, VK_A);

You can pass handle of form instead of applet.


Thaddy   (2005-07-28 01:01:00) [3]

Hotkeys need to be combined with either alt or crtl, unless you install a true keyboardhook or do something similar as I did with my pianokeyboard control, i.e. intercept everything and translate it into another keycode.


Наверх

Титульная страница Поиск, карта сайта Написать письмо