精易论坛

标题: 精易模块的键盘钩子功能扩展,判断指定键是否按住 [打印本页]

作者: 按键精灵    时间: 2021-3-22 23:18
标题: 精易模块的键盘钩子功能扩展,判断指定键是否按住
本帖最后由 按键精灵 于 2021-3-23 00:29 编辑
  
数据类型名公开备 注
KBDLLHOOKSTRUCT 
成员名类 型传址数组备 注
vkCode整数型 一种虚拟键代码。代码必须是 1 到 254 范围中的一个值。
scanCode整数型  关键硬件扫描代码。
flags整数型  扩展键标志、 事件注入标志、 上下文代码和过渡状态标志。应用程序可以使用值来测试击键标志。
time整数型  此消息的时间戳,相当于什么GetMessageTime将返回此消息。
dwExtraInfo整数型 与消息关联的附加信息,实际为ULONG_PTR型


主要是对 WH_KEYBOARD_LL(13)全局键盘钩子 返回结构的flags 里的按键/弹起判断来确定是否按住,直接在#WM_KEYDOWN 或 #WM_KEYUP下面判断也是一样的,这个是另一种方法,我看易语言没相关例子。
局部键盘钩子WH_KEYBOARD(2)的lParam直接就是一个32位的二进制数,里面的第31位直接标明了是否被按住,就省的自己写判断了

e例程.rar

961.8 KB, 下载次数: 143, 下载积分: 精币 -2 枚


作者: 按键精灵    时间: 2021-3-22 23:33
注意别把安装钩子点两次,zc多个钩子函数会被重复相应,直接乱套了,我忘了写判断了。
作者: 按键精灵    时间: 2021-3-22 23:39
本帖最后由 按键精灵 于 2021-3-22 23:41 编辑

一个GetAsyncKeyState就能判断是不是按住了,用我发的这个方法判断属于多此一举,我只是好奇这个flags是什么东西,易语言根本搜不到这个例程,拿这个举个例子
作者: kmskik    时间: 2021-3-22 23:51
没有附件啊亲
作者: 按键精灵    时间: 2021-3-23 00:29
kmskik 发表于 2021-3-22 23:51
没有附件啊亲

尴尬,忘了上传,等一下
作者: huoshanlangzhe    时间: 2021-3-23 08:50
6666666666666666666666
作者: sinewtec    时间: 2021-3-23 09:05
虽不需要 支持下!!!!
作者: snak2020    时间: 2021-3-23 09:26
谢谢分享,学习
作者: 站在月光下想你    时间: 2021-3-23 12:40
去精益产品中心发,看看下个版本能不能被收录.
作者: 深圳梦    时间: 2021-3-23 15:26
感谢分享,很给力!~
作者: weigar    时间: 2021-3-24 02:43
支持开源~!感谢分享
作者: 仲豆子    时间: 2021-3-24 13:27
谢谢分享,学习

作者: ujff77    时间: 2021-3-24 19:53
谢谢分享
作者: 网络注册会员    时间: 2021-3-25 07:52
支持支持
作者: 懒人定制软件    时间: 2021-3-27 01:04
感谢发布原创作品,精易因你更精彩!
作者: zzzyf    时间: 2021-3-31 09:38
#在这里快速回复#        支持开源~!感谢分享
作者: mohuawu007    时间: 2021-4-22 17:42
.版本 2

.DLL命令 取按键状态, 整数型, "user32.dll", "GetAsyncKeyState", 公开, 返回值为"0"----指定键当前未处于按下状态,而且自上次调用本命令后该键也未被按过                                                                                                                                返回值为"1"----指定键当前未处于按下状态,但在此之前(自上次调用本命令后)该键曾经被按过                                                                                                                        返回值为"-32768"(16进制数&H800)----指定建当前处于按下状态,但在此之前(自上次调用本命令后)键未被按过                                                                                                          返回值为"-32767"(16进制数&H801)----指定建当前处于按下状态,而且在此之前(自上次调用本命令后)键被按过
    .参数 鼠标键, 整数型

作者: gaiqikun    时间: 2021-12-15 00:55
66666666666666666666666666666666666
作者: 网络注册络员    时间: 2022-3-14 18:58
学习一下
作者: 必兮相语    时间: 2022-4-17 19:11

#在这里快速回复#        支持开源~!感谢分享
作者: 必兮相语    时间: 2022-4-17 19:12

#在这里快速回复#        支持开源~!感谢分享




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4