标题:转摘:鼠标N秒内没操作时执行一个动作!
只看楼主
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
结帖率:98.96%
 问题点数:0 回复次数:2 
转摘:鼠标N秒内没操作时执行一个动作!
* 转摘:十豆三 http://blog.
*--可以应用到公开查询系统等
*--表单的Load事件加代码:
Public gnMouseX,gnMouseY,gnTotalTimer
Store 0 To gnMouseX,gnMouseY,gnTotalTimer
Declare Integer GetCursorPos In user32 String@ lpPoint


*--表单的Unload事件加代码:
Clear Dlls "GetCursorPos"
*--向表单添加一个Timer控件,Timer1控件的Interval值为1000(即1秒),Enabled属性为.T.,此控件的Timer事件:
cbuff=Space(16)
MyMouse=GetCursorPos(@cBuff) &&获取鼠标的坐标值
X=Asc(Substr(cBuff,2,1))*256+Asc(Substr(cBuff,1,1))
Y=Asc(Substr(cBuff,6,1))*256+Asc(Substr(cBuff,5,1))
If gnTotalTimer=10 &&10秒
    Store 0 To gnMouseX,gnMouseY,gnTotalTimer
    Messagebox('鼠标已经10秒没有移动了'+Space(5),64,'信息提示')
Else
    If gnMouseX!=X Or gnMouseY!=Y
        gnMouseX=Asc(Substr(cBuff,2,1))*256+Asc(Substr(cBuff,1,1))
        gnMouseY=Asc(Substr(cBuff,6,1))*256+Asc(Substr(cBuff,5,1))
        gnTotalTimer=0
    Else
        gnTotalTimer=gnTotalTimer+1
    Endif
Endif
 
*--表单的Init事件加代码:
This.Timer1.Timer()

* 在上面的基础上,加入键盘无动作
* 表单的 KeyPress 事件即可(表单的 KeyPreview 设为.T.)
Store 0 To gnMouseX,gnMouseY,gnTotalTimer
搜索更多相关主题的帖子: 查询系统 
2016-10-26 11:11
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
看代码好象是用座标或键码的变化来判断。
无“变化”的动作是否有可能存在?
也可以定时用 API GetLastInputInfo() 检测。
2016-10-26 11:42
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
我今天刚好要用到这个,就百度出 10豆3的方法
2016-10-26 12:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470279-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.130529 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved