易语言怎么计算一个按键被按下多少秒?
易语言怎么计算一个按键被按下多少秒?我要写个小程序计算某键被按下了多少秒,计算过程焦点不会在小程序上!也就是说要实现后台计算!...
易语言怎么计算一个按键被按下多少秒?
我要写个小程序计算某键被按下了多少秒,计算过程焦点不会在小程序上!也就是说要实现后台计算! 展开
我要写个小程序计算某键被按下了多少秒,计算过程焦点不会在小程序上!也就是说要实现后台计算! 展开
4个回答
展开全部
更多追问追答
追问
你还是没明白,我说的焦点意思!你这样必须点击按钮,我要测试的是在别的程序里按下某键,然后用易语言程序计算按了多少秒,你这个我会写!还能写出比你更好的
我要的是比如你聊QQ你在聊天框按空格,计算你按了多久
现在明白了?
追答
.版本 2
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
编辑框1.获取焦点 ()
.子程序 _编辑框1_按下某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
.如果 (键代码 = 32)
时钟1.时钟周期 = 100
.否则
.如果结束
.子程序 _时钟1_周期事件
编辑框1.内容 = 到文本 (到数值 (编辑框1.内容) + 1)
.子程序 _编辑框1_放开某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
.如果 (键代码 = 32)
时钟1.时钟周期 = 0
.否则
.如果结束
记得给分哦。呵呵。
展开全部
呵呵,这问题问得好!可惜我准备睡觉了,暂时不能详细解答,但能给你一些大致解答:
首先,你要监控键盘输入,而监控时却不在自己的程序上,这样可以考虑做热键的方式,
先不说热键之类的,先说监控的思路
建立一个自定义类型数组,类型中有4个成员,1个是键值,1个是记录发生按下的时间,1个是记录这个键最后一次被按下了多久(整数型,单位为毫秒)! 1个是记录放开这个键的时间
对数组进行常规初始化(数组是动态的)
1:收到某键的按下状态,然后寻找数组中是否已经有登记该键值的信息,如果没有就用 重定义数组 函数 增加成员 (好像自定义类型的数组不能直接使用加入成员函数),
然后就是记录相关的信息
2:收到某件弹起(即放开)状态时,同样在数组中寻找记录信息,并通过上次记录的时间,再通过时间处理函数,来计算出从按下到弹起经过的毫秒数!最后把结果保存到 第3个成员中!
以上的理念其实相对简单,但是要得到上面代码要求得到的按键的信息通常有几种方式,而鉴于你的情况,恐怕就2种方式为主了,1:使用注册热键,2:使用全局键盘钩子
前者是针对某键的,后者是针对进程消息机制的,能覆盖整个系统的键盘事件!
我去睡觉了,有问题就补充吧!明天会留意你这个问题的情况的!
首先,你要监控键盘输入,而监控时却不在自己的程序上,这样可以考虑做热键的方式,
先不说热键之类的,先说监控的思路
建立一个自定义类型数组,类型中有4个成员,1个是键值,1个是记录发生按下的时间,1个是记录这个键最后一次被按下了多久(整数型,单位为毫秒)! 1个是记录放开这个键的时间
对数组进行常规初始化(数组是动态的)
1:收到某键的按下状态,然后寻找数组中是否已经有登记该键值的信息,如果没有就用 重定义数组 函数 增加成员 (好像自定义类型的数组不能直接使用加入成员函数),
然后就是记录相关的信息
2:收到某件弹起(即放开)状态时,同样在数组中寻找记录信息,并通过上次记录的时间,再通过时间处理函数,来计算出从按下到弹起经过的毫秒数!最后把结果保存到 第3个成员中!
以上的理念其实相对简单,但是要得到上面代码要求得到的按键的信息通常有几种方式,而鉴于你的情况,恐怕就2种方式为主了,1:使用注册热键,2:使用全局键盘钩子
前者是针对某键的,后者是针对进程消息机制的,能覆盖整个系统的键盘事件!
我去睡觉了,有问题就补充吧!明天会留意你这个问题的情况的!
更多追问追答
追问
注册热键没办法区分按下和放弃状态。
全局键盘钩子应该可以 但是CPU占用比较高
我昨天做了鼠标全局钩子cpu彪到了7 真郁闷
目前暂时用的时钟周期 加 DLL 命令取键状态(GetAsyncKeyState)
追答
奇怪了,你是要记录某键按下时长,难道连鼠标的左右键都要记录吗?
另外,全局键盘钩子不应该会占用这么大的!
把你钩子的函数发来我看看!
置于其他回答的,都看了,他们不明白你要的解决方案!
另外,如果你要连鼠标的都监控,那恐怕会占用得厉害点!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用按钮的组件事件,当按钮被按下时开始计时,当按钮被放开时结束计时。这样就可以得到中间的时间了
追问
不是这样的!你没看懂题目!问题是我要按某个键触发,还不是在本程序里按,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说的不是很清楚, 加个 时钟周期 应该可以实现, 给你发一下 自动后天打开网站是怎么实现的
.版本 2
.支持库 HtmlView
.版本 2
.子程序 _按钮1_被单击
超文本浏览框1.跳转 (编辑框1.内容, , )
时钟1.时钟周期 = 到数值 (编辑框2.内容) × 1000
.子程序 _时钟1_周期事件
超文本浏览框1.跳转 (编辑框1.内容, , )
在写托盘源码应该可以实现, 关键你想写什么软件 说清楚点 或许可以给你解决
.版本 2
.支持库 HtmlView
.版本 2
.子程序 _按钮1_被单击
超文本浏览框1.跳转 (编辑框1.内容, , )
时钟1.时钟周期 = 到数值 (编辑框2.内容) × 1000
.子程序 _时钟1_周期事件
超文本浏览框1.跳转 (编辑框1.内容, , )
在写托盘源码应该可以实现, 关键你想写什么软件 说清楚点 或许可以给你解决
追问
就是比如说我要计算我按下空格键到放开空格键之间的时间
明白了没?
按下某键和放开某键无效,因为焦点不会在本程序上,所以这两个事件不会触发!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询