加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 如何检测非修饰键按键组合?

发布时间:2020-12-15 04:34:31 所属栏目:大数据 来源:网络整理
导读:我在Delphi中遇到以下问题(但它可能被视为一般编程问题). 我想以某种方式处理多个非修饰键组合的按键事件,例如对于A D或D F或D F G这样的快捷方式. 我知道如何处理带有修饰键的快捷键,例如CTRL D或CTRL ALT D或ALT D,但是如何检测非修饰键按键组合? 解决方
我在Delphi中遇到以下问题(但它可能被视为一般编程问题).

我想以某种方式处理多个非修饰键组合的按键事件,例如对于A D或D F或D F G这样的快捷方式.

我知道如何处理带有修饰键的快捷键,例如CTRL D或CTRL ALT D或ALT D,但是如何检测非修饰键按键组合?

解决方法

每个单独的击键都会生成单独的OnKeyDown,OnKeyPress和OnKeyUp事件.所以你有三个选择:

>跟踪当前按下的每个键.对于您收到的每个密钥,在OnKeyDown事件中为它设置一个标志,并在相应的OnKeyUp事件中清除它的标志.当您获得D的OnKeyDown事件时,请检查您是否已标记A,F,G等.OnKeyDown和OnKeyUp事件还将告诉您CTRL,ALT和SHIFT键的状态.>使用Win32 API GetKeyboardState(),GetKeyState()或GetAsyncKeyState()函数.当您获得D的OnKeyDown事件时,询问操作系统当前是否按下A,G,CTRL等.>对于某些序列,您可以使用RegisterHotKey()并让操作系统为您跟踪密钥.检测到已注册的序列时,您将收到WM_HOTKEY消息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读