导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2004/2/23 10:31:44
标题:
加入我的收藏
楼主:
注册系统级热键,据俺所知有两种方法,一种是用RegisterHotKey函数,这个比较简单,另外一种是用sendmessagea函数发送wm_hotkey消息,小弟要问的就是这个 问题是:比如我想用某一组键作为我的程序热键的话,我用如下代码注册 sendmessagea(handle,wm_hotkey,hotkey1.hotkey,0); 可是注册成功了之后我不知道如何编写代码响应我的热键,好像是通过wparam参数值来判断,还请各位大侠不吝赐教!
----------------------------------------------
秋风清 秋月明,几上闲琴黯生尘。 夜来忽忆少年事,陌上柳绿草青青。 相逢一笑言未语,携手相看自倾心。 二十二载云烟里,云含风韵烟含情。 风尘渺落风霜浸,但闻长空雁长鸣。 姿容如花颜如玉,只在平生梦里寻。 秋风清 秋月明,秋灯秋雨愁煞人。 天涯路远人何在,午夜梦回空扰惊。
作者:
2004/2/24 14:43:57
1楼:
晕,竟然没有人回答,是这个问题太难还是我太笨?:)
----------------------------------------------
秋风清 秋月明,几上闲琴黯生尘。 夜来忽忆少年事,陌上柳绿草青青。 相逢一笑言未语,携手相看自倾心。 二十二载云烟里,云含风韵烟含情。 风尘渺落风霜浸,但闻长空雁长鸣。 姿容如花颜如玉,只在平生梦里寻。 秋风清 秋月明,秋灯秋雨愁煞人。 天涯路远人何在,午夜梦回空扰惊。
作者:
2004/2/24 16:41:52
2楼:
应该是处理WM_HOTKEY消息吧?
----------------------------------------------
-
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2004/2/24 21:33:50
3楼:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin with Msg do if (Message = WM_KEYDOWN) then begin showmessage('ok'); SendMessage(Form1.Handle, Message, wParam, lParam); end; end;
----------------------------------------------
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2004/2/24 21:35:40
4楼:
建议用 const WM_SNAPHOTKEY=WM_USER + 101; //自定义系统热键消息 type .... public procedure ONHotkey(var message:Tmessage);message WM_HOTKEY; end; ..... procedure TFrmMain.FormShow(Sender: TObject); begin RegisterHotKey(Handle,WM_SNAPHOTKEY,MOD_CONTROL,VK_A ); end; procedure TFrmMain.FormDestroy(Sender: TObject); begin UnregisterHotKey(Handle,WM_SNAPHOTKEY); end; procedure TFrmMain.ONHotkey(var message:Tmessage); begin if (message.WParam=WM_SNAPHOTKEY) then begin//1 form2.show; end;//1 end;
----------------------------------------------
作者:
2004/2/25 13:37:25
5楼:
谢谢两位关注! 关键是俺不想RegisterHotKey函数啊! 因为我想让使用者自定义程序热键,所以就加了一个hotkey控件,用来获得用户的自定义热键。 但是用reg函数有个难点,如果热键是一个键还好解决,如果有辅助键如ALT或SHIFT、CTRL,那我该如何把HOTKEY的辅助键与非辅助键分开?因为REG函数有两个参数,其中一个是辅助键信息,一个是非辅助键的信息,两者一定要分开的。 但是如果是sendmessage函数的话,辅助键与非辅助键就不用分开了,直接取hotkey控件的hotkey值就可以了。 以上,说得比较含糊。希望诸位大侠给予解答!
----------------------------------------------
秋风清 秋月明,几上闲琴黯生尘。 夜来忽忆少年事,陌上柳绿草青青。 相逢一笑言未语,携手相看自倾心。 二十二载云烟里,云含风韵烟含情。 风尘渺落风霜浸,但闻长空雁长鸣。 姿容如花颜如玉,只在平生梦里寻。 秋风清 秋月明,秋灯秋雨愁煞人。 天涯路远人何在,午夜梦回空扰惊。