Delphi中如何判断全局热键状态是按下还是弹起?

mops 2015-10-10 05:30:15
在窗体中可以通过FormKeyDown or FormKeyUp来判断按键的状态。我想请问下,全局热键是否可以实现同样的功能?
比如定义了全局热键Ctrl+alt+Q,当按下不放时显示窗体,等松开时,窗体隐藏。

谢谢了,请大家帮助!
...全文
870 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2015-10-15
  • 打赏
  • 举报
回复
楼主你要明确一个操作系统按键的概念。 1、操作系统不存在键的长时按下,或放开这二个状态; 2、操作系统中,当有键按下时或放开时,只会响应一个事件; 3、至于是那个键击发事件,不要通过判断,才能知晓。
  • 打赏
  • 举报
回复
SetWindowsHookEx设置一个WH_KEYBOARD类型的钩子,回调的KeyboardProc函数的参数中的lParam的最高位(bit31)指示键按下状态(0按下,1放开),当然也可以用WH_KEYBOARD_LL类型的钩子,回调的LowLevelKeyboardProc函数的参数中的lParam指向一个KBDLLHOOKSTRUCT结构,其中的flags的bit7指示键按下状态(0按下,1放开)。
mops 2015-10-11
  • 打赏
  • 举报
回复
就是想问下怎样区分按下和放开。如果只是判断按了,那也不需要专门来麻烦各位了。
tcmakebest 2015-10-10
  • 打赏
  • 举报
回复
热键不是这么用的,只会有一个结果是用户按了热键,没有区分按下和放开这么仔细.
  • 打赏
  • 举报
回复
用键盘钩子 hook

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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