如何取得键盘上同时按下的两个或更多个的键?比如space+a+b+c

迷死特兔 2003-07-22 10:45:46
如何取得键盘上同时按下的两个或更多个的键?
我知道Ctrl、Shift、Alt加上其它键比较好取得,但是我现在要取得其它类型的组合键,如何取?
比如space+a+b+c or a+s+d+f or Ctrl+Space+1 or Alt+Space+1+F3 等等



...全文
238 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
迷死特兔 2003-07-23
  • 打赏
  • 举报
回复
因为我的程序可能需要用到键盘上所有常用的键,如果我注册了那么多的热键,那岂不是很乱???与其它程序可能会冲突的,我不可能在本窗体失去焦点事件中取消注册hotkey,获得焦点建立注册hotkey,那样做的话,效率很差……
大地精灵 2003-07-23
  • 打赏
  • 举报
回复
同意 delphi_xizhousheng(西周生)
Coder99 2003-07-23
  • 打赏
  • 举报
回复
同意khzide。
迷死特兔 2003-07-23
  • 打赏
  • 举报
回复
能给个demo程序吗?
delphi_xizhousheng 2003-07-23
  • 打赏
  • 举报
回复
a+s+d+f :
keybd_event(ord('a'),0,0,0);
keybd_event(ord('s'),0,0,0);
keybd_event(ord('a'),0,KEYEVENTF_KEYUP,0);
keybd_event(ord('s'),0,KEYEVENTF_KEYUP,0);
khzide 2003-07-23
  • 打赏
  • 举报
回复
在OnKeyDown中检查Shift.和State 两个参数就可以了。或者在任何时候都可以使用winAPI标准函数GetKeyState来得到当前所有按下去的键信息。
pankun 2003-07-22
  • 打赏
  • 举报
回复
要取组合键,你不如先用RegisterHotKey把你要其的组合键注册成热键,当指定的热键按下后,系统会发WM_HOTKEY消息到你的窗口。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧