开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

楼主: 蓝雅婷
收起左侧

[闲聊] 易语言火山怎样让SetTimer时钟周期记录一次循环超时等待无...

[复制链接]
结帖率:100% (3/3)
发表于 2021-9-3 14:46:14 | 显示全部楼层   广东省汕头市
LLJ 发表于 2021-9-2 17:50
下载还要2 JB,懒得下载
这已经是思路了,你只不过换个写法就不会了吗?比如写成热键

注意有静态变量,精易论坛没显示出来
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 1 天

发表于 2021-9-3 14:43:40 | 显示全部楼层   广东省汕头市
蓝雅婷 发表于 2021-9-3 14:26
识别不到双击应该是这一句 代码 获取不到时间,我调试的时候发现的

果真 (取启动时间 () - 双击时间 < ...

把局部变量 双击时间、长按时间 设置为静态
或者改成全局变量
回复 支持 反对

使用道具 举报

结帖率:20% (2/10)
 楼主| 发表于 2021-9-3 14:26:03 | 显示全部楼层   江西省赣州市
LLJ 发表于 2021-9-2 18:07
单击识别慢没有办法,因为你不希望单击和双击可以同时触发,就必须等待双击超时了才触发单击,你可以降低 ...

识别不到双击应该是这一句 代码 获取不到时间,我调试的时候发现的

果真 (取启动时间 () - 双击时间 < 300)
回复 支持 反对

使用道具 举报

结帖率:20% (2/10)
 楼主| 发表于 2021-9-3 13:35:40 | 显示全部楼层   江西省赣州市
本帖最后由 蓝雅婷 于 2021-9-3 13:38 编辑
  
子程序名返回值类型公开备 注
键盘钩子回调函数整数型 回调函数是钩子里最重要的东西
参数名类 型参考可空数组备 注
参数一 
按键状态 
键值 
变量名类 型静态数组备 注
按键信息按键信息 
声音文件_局文本型 
局部_单击次数整数型 
窗口句柄整数型 
时钟id整数型 
按键时间整数型 
比较按钮整数型 
长按时间整数型 
双击时间整数型 
' 目标按键代码 = 取代码 (编辑框1.内容, ) - 32
' 目标按键代码 = 取代码 (“174”, ) - 32
' 目标按键代码 = 8
取键键码_钩子 = 取字节集数据 (指针到字节集 (键值, 1), #整数型, )  ' 把指针转换成键值,键值取出来了想怎么玩怎么玩
全局_按键状态 = 按键状态
定时器设定值 = 60
' 调试输出 (取键键码_钩子)
集_时间2 = 0
是否超时 = “未超时”
停止长按 = 假
是否双击 = 假
窗口句柄 = 0
如果真 (取键键码_钩子 = #WIN键 )  ' 键码91
判断 (微标键切换模式.选中 = )
判断 (按键状态 = #按键按下 )  ' 按下
如果 (按下 = )
按下 = 真
长按时间 = 取启动时间 ()
如果 (双击 = )
双击 = 真
双击时间 = 取启动时间 ()
如果真 (取启动时间 () - 双击时间 < 300)
双击 = 假
输出调试文本 (“双击”)
双击时间 = 取启动时间 ()
如果真 (双击)
' 调试输出 (双击)
' 累计 = 累计 + 1

如果真 (取启动时间 () - 长按时间 > 1000)
长按时间 = 取启动时间 ()
双击 =   ' 防止放开后触发单击事件
输出调试文本 (“长按”)

' 检测_集.输出次数 (#WIN键, &微标键反馈事件)  ' 检测双击单击还是长按行为
' 调试输出 (取键键码_钩子)
判断 (按键状态 = #按键抬起 )  ' 按下
按下 = 假
如果真 (双击)
如果真 (取启动时间 () - 双击时间 > 300)  ' 如果双击超时,那就是单击
双击 = 假
调试输出 (“单击”, “累计单击次数”, 累计)


' 检测_集.输出次数 (#WIN键, &微标键反馈事件)  ' 检测双击单击还是长按行为
' 检测_集.输出次数 (#WIN键, &微标键反馈事件)  ' 检测双击单击还是长按行为
' 调试输出 (取键键码_钩子)
' 按下 = 假








i支持库列表   支持库注释   
spec特殊功能支持库
2021.9.2鼠标侧键-新增模式切换功能-有问题未修复(精易论坛请教).zip.zip (414.97 KB, 下载次数: 0)
回复 支持 反对

使用道具 举报

结帖率:20% (2/10)
 楼主| 发表于 2021-9-3 13:35:24 | 显示全部楼层   江西省赣州市
LLJ 发表于 2021-9-2 18:07
单击识别慢没有办法,因为你不希望单击和双击可以同时触发,就必须等待双击超时了才触发单击,你可以降低 ...

在吗 ?最新问题,能否看下,我觉得我们调试环境可能不一样,建议下载我的源码里面测试,或者你申明一个键盘钩子调试(我用的是键盘钩子,当按下某键后按键会一直输出结果,直到抬起时才会停止输出,) 你这个代码我放到里面去只能识别到单击和长按的操作,双击识别不到是怎么回事呀?  
  
.版本 2[attach]1122559[/attach]
如果真 (取键键码_钩子 = #WIN键 )  ' 键码91
判断 (微标键切换模式.选中 = )
判断 (按键状态 = #按键按下 )  ' 按下
如果 (按下 = )
按下 = 真
长按时间 = 取启动时间 ()
如果 (双击 = )
双击 = 真
双击时间 = 取启动时间 ()
如果真 (取启动时间 () - 双击时间 < 300)
双击 = 假
输出调试文本 (“双击”)
双击时间 = 取启动时间 ()
如果真 (双击)
' 调试输出 (双击)
' 累计 = 累计 + 1

如果真 (取启动时间 () - 长按时间 > 1000)
长按时间 = 取启动时间 ()
双击 =   ' 防止放开后触发单击事件
输出调试文本 (“长按”)

' 检测_集.输出次数 (#WIN键, &微标键反馈事件)  ' 检测双击单击还是长按行为
' 调试输出 (取键键码_钩子)
判断 (按键状态 = #按键抬起 )  ' 按下
按下 = 假
如果真 (双击)
如果真 (取启动时间 () - 双击时间 > 300)  ' 如果双击超时,那就是单击
双击 = 假
调试输出 (“单击”, “累计单击次数”, 累计)



i支持库列表   支持库注释   
spec特殊功能支持库

回复 支持 反对

使用道具 举报

结帖率:20% (2/10)
 楼主| 发表于 2021-9-3 13:34:28 | 显示全部楼层   江西省赣州市
LLJ 发表于 2021-9-2 18:07
单击识别慢没有办法,因为你不希望单击和双击可以同时触发,就必须等待双击超时了才触发单击,你可以降低 ...

在吗 ?最新问题,能否看下,我觉得我们调试环境可能不一样,建议下载我的源码里面测试,或者你申明一个键盘钩子调试(我用的是键盘钩子,当按下某键后按键会一直输出结果,直到抬起时才会停止输出,) 你这个代码我放到里面去只能识别到单击和长按的操作,双击识别不到是怎么回事呀?  
  
.版本 2[attach]1122559[/attach]
如果真 (取键键码_钩子 = #WIN键 )  ' 键码91
判断 (微标键切换模式.选中 = )
判断 (按键状态 = #按键按下 )  ' 按下
如果 (按下 = )
按下 = 真
长按时间 = 取启动时间 ()
如果 (双击 = )
双击 = 真
双击时间 = 取启动时间 ()
如果真 (取启动时间 () - 双击时间 < 300)
双击 = 假
输出调试文本 (“双击”)
双击时间 = 取启动时间 ()
如果真 (双击)
' 调试输出 (双击)
' 累计 = 累计 + 1

如果真 (取启动时间 () - 长按时间 > 1000)
长按时间 = 取启动时间 ()
双击 =   ' 防止放开后触发单击事件
输出调试文本 (“长按”)

' 检测_集.输出次数 (#WIN键, &微标键反馈事件)  ' 检测双击单击还是长按行为
' 调试输出 (取键键码_钩子)
判断 (按键状态 = #按键抬起 )  ' 按下
按下 = 假
如果真 (双击)
如果真 (取启动时间 () - 双击时间 > 300)  ' 如果双击超时,那就是单击
双击 = 假
调试输出 (“单击”, “累计单击次数”, 累计)



i支持库列表   支持库注释   
spec特殊功能支持库

回复 支持 反对

使用道具 举报

结帖率:20% (2/10)
 楼主| 发表于 2021-9-3 13:32:31 | 显示全部楼层   江西省赣州市
LLJ 发表于 2021-9-2 17:50
下载还要2 JB,懒得下载
这已经是思路了,你只不过换个写法就不会了吗?比如写成热键

在吗 ?最新问题,能否看下,我觉得我们调试环境可能不一样,建议下载我的源码里面测试,或者你申明一个键盘钩子调试(我用的是键盘钩子,当按下某键后按键会一直输出结果,直到抬起时才会停止输出,) 你这个代码我放到里面去只能识别到单击和长按的操作,双击识别不到是怎么回事呀?  
  
.版本 2[attach]1122559[/attach]
如果真 (取键键码_钩子 = #WIN键 )  ' 键码91
判断 (微标键切换模式.选中 = )
判断 (按键状态 = #按键按下 )  ' 按下
如果 (按下 = )
按下 = 真
长按时间 = 取启动时间 ()
如果 (双击 = )
双击 = 真
双击时间 = 取启动时间 ()
如果真 (取启动时间 () - 双击时间 < 300)
双击 = 假
输出调试文本 (“双击”)
双击时间 = 取启动时间 ()
如果真 (双击)
' 调试输出 (双击)
' 累计 = 累计 + 1

如果真 (取启动时间 () - 长按时间 > 1000)
长按时间 = 取启动时间 ()
双击 =   ' 防止放开后触发单击事件
输出调试文本 (“长按”)

' 检测_集.输出次数 (#WIN键, &微标键反馈事件)  ' 检测双击单击还是长按行为
' 调试输出 (取键键码_钩子)
判断 (按键状态 = #按键抬起 )  ' 按下
按下 = 假
如果真 (双击)
如果真 (取启动时间 () - 双击时间 > 300)  ' 如果双击超时,那就是单击
双击 = 假
调试输出 (“单击”, “累计单击次数”, 累计)



i支持库列表   支持库注释   
spec特殊功能支持库

回复 支持 反对

使用道具 举报

结帖率:20% (2/10)
 楼主| 发表于 2021-9-3 13:01:20 | 显示全部楼层   江西省赣州市
LLJ 发表于 2021-9-2 17:50
下载还要2 JB,懒得下载
这已经是思路了,你只不过换个写法就不会了吗?比如写成热键

在吗 ?最新问题,能否看下,我觉得我们调试环境可能不一样,建议下载我的源码里面测试,或者你申明一个键盘钩子调试(我用的是键盘钩子,当按下某键后按键会一直输出结果,直到抬起时才会停止输出,) 你这个代码我放到里面去只能识别到单击和长按的操作,双击识别不到是怎么回事呀?  
  
.版本 2[attach]1122559[/attach]
如果真 (取键键码_钩子 = #WIN键 )  ' 键码91
判断 (微标键切换模式.选中 = )
判断 (按键状态 = #按键按下 )  ' 按下
如果 (按下 = )
按下 = 真
长按时间 = 取启动时间 ()
如果 (双击 = )
双击 = 真
双击时间 = 取启动时间 ()
如果真 (取启动时间 () - 双击时间 < 300)
双击 = 假
输出调试文本 (“双击”)
双击时间 = 取启动时间 ()
如果真 (双击)
' 调试输出 (双击)
' 累计 = 累计 + 1

如果真 (取启动时间 () - 长按时间 > 1000)
长按时间 = 取启动时间 ()
双击 =   ' 防止放开后触发单击事件
输出调试文本 (“长按”)

' 检测_集.输出次数 (#WIN键, &微标键反馈事件)  ' 检测双击单击还是长按行为
' 调试输出 (取键键码_钩子)
判断 (按键状态 = #按键抬起 )  ' 按下
按下 = 假
如果真 (双击)
如果真 (取启动时间 () - 双击时间 > 300)  ' 如果双击超时,那就是单击
双击 = 假
调试输出 (“单击”, “累计单击次数”, 累计)



i支持库列表   支持库注释   
spec特殊功能支持库

回复 支持 反对

使用道具 举报

结帖率:20% (2/10)
 楼主| 发表于 2021-9-3 00:58:45 | 显示全部楼层   江西省赣州市
LLJ 发表于 2021-9-2 18:03
看这截图的代码,就觉得你还需要再练。
另外SetTimer的精度是不准确的,更不要用这个来累加计时,要计时 ...

把按钮判断改成按键判断 如下代码没有任何作用了,你看下哪里出了问题,或者结合你之前的 取启动时间()命令修改一下能否使用
  
子程序名返回值类型公开备 注
键盘钩子回调函数整数型 回调函数是钩子里最重要的东西
参数名类 型参考可空数组备 注
参数一 
按键状态 
键值 
变量名类 型静态数组备 注
按键信息按键信息 
声音文件_局文本型 
局部_单击次数整数型 
窗口句柄整数型 
时钟id整数型 
按键时间整数型 
比较按钮整数型 
' 目标按键代码 = 取代码 (编辑框1.内容, ) - 32
' 目标按键代码 = 取代码 (“174”, ) - 32
' 目标按键代码 = 8
取键键码_钩子 = 取字节集数据 (指针到字节集 (键值, 1), #整数型, )  ' 把指针转换成键值,键值取出来了想怎么玩怎么玩
全局_按键状态 = 按键状态
定时器设定值 = 60
' 调试输出 (取键键码_钩子)
集_时间2 = 0
是否超时 = “未超时”
停止长按 = 假
是否双击 = 假
窗口句柄 = 0
如果真 (取键键码_钩子 = #WIN键 )  ' 退格键 键码91
调试输出 (“微标键按下,键码:”, #WIN键 )
判断 (微标键切换模式.选中 = )
判断 (按键状态 = #按键按下 )  ' 按下
调试输出 (“微标键按下,键码:”, #WIN键 )
' 多次点击.连点器 (取键键值)
销毁时钟_ (窗口句柄, #按键按下 )  ' //  #ID_TIME_MOUSE_CLICKDOWN = 2
销毁时钟_ (窗口句柄, #按键抬起 )  ' //#ID_TIME_MOUSE_CLICKUP = 3
时钟id = 设置时钟 (0, 按键状态, 260, 0)
判断 (按键状态 = #按键抬起 )  ' 按下
调试输出 (“微标键抬起,键码:”, #WIN键 )
' 多次点击.连点器 (取键键值)
销毁时钟_ (窗口句柄, #按键按下 )  ' //  #ID_TIME_MOUSE_CLICKDOWN = 2
销毁时钟_ (窗口句柄, #按键抬起 )  ' //#ID_TIME_MOUSE_CLICKUP = 3
时钟id = 设置时钟 (窗口句柄, 按键状态, 260, 0)
按键时间 = 按键时间 + 1
判断 (按键状态 ≠ #按键抬起 )  ' 按下 #系统定时器
销毁时钟_ (窗口句柄, #按键抬起 )  ' 原wParam
判断 ( #按键抬起#按键按下 )  ' 判断 (wParam = #按键按下)
获取按键点击 (按键时间)
按键时间 = -1
判断 ( #按键抬起#按键抬起 )  ' 判断 (wParam = #按键按下)
如果真 (按键时间 > 0)
获取按键点击 (按键时间)
按键时间 = 0


返回 (呼叫窗口函数地址 (比较按钮, 窗口句柄, 按键状态, #按键抬起, #按键按下 ))








子程序名返回值类型公开备 注
获取按键点击  
参数名类 型参考可空数组备 注
点击次数整数型flag
判断 (点击次数 = 0)
调试输出 (“长按”)
判断 (点击次数 = 1)
调试输出 (“单击”)
判断 (点击次数 = 2)
调试输出 (“双击”)
载入 (窗口1, , )

调试输出 (点击次数, “击”)


i支持库列表   支持库注释   
spec特殊功能支持库

回复 支持 反对

使用道具 举报

结帖率:20% (2/10)
 楼主| 发表于 2021-9-2 23:14:10 | 显示全部楼层   江西省赣州市
本帖最后由 蓝雅婷 于 2021-9-2 23:22 编辑
LLJ 发表于 2021-9-2 18:03
看这截图的代码,就觉得你还需要再练。
另外SetTimer的精度是不准确的,更不要用这个来累加计时,要计时 ...
用于按钮的N击事件,改成键盘狗子 按键事件.e (14.72 KB, 下载次数: 0)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表