vb 鼠标移动事件

我设计了一个系统考虑的安全方面的问题,想进行如下功能:当鼠标停止的时候TIMER开始工作,当鼠标停止的的时间超过一个时间(比如20分钟)就会出现一个提示筐:提示“已经20... 我设计了一个系统 考虑的安全方面的问题,想进行如下功能:
当鼠标停止的时候TIMER开始工作,当鼠标停止的的时间超过一个时间(比如20分钟)就会出现一个提示筐:提示“已经20分钟无任何造作,是否退出系统”的提示。

请哪位大侠帮帮我 重金酬谢!!!!!!!
当关闭系统的时候点击右上角的小X 就直接退出系统了
能不能写段代码 当点击小X(关闭按钮)的时候弹出提示筐 确认是否关闭系统??

小弟急啊 大侠请指教!
展开
 我来答
showder
2008-05-07
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
来的晚,帮顶顶,楼上代码很好,很强大.嘿嘿`~!!

不过有点局限,mousemove事件只局限在form中.
建议通过GetCursorPos API来获取鼠标坐标.
从而判断,鼠标是否移动

呵呵,根据你要求写了下面代码,你试试

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Dim NowPos As POINTAPI '用来纪录鼠标停止时坐标
Const HandleTime = 20 '20分钟后处理
Dim NowCount As Integer '用来纪录鼠标停止了多久

Private Sub Form_Load()
Timer1.Interval = 1000 '1秒检测一次
Timer1.Enabled = True
Timer2.Interval = 60000 '1分钟一次 timer时间
Timer2.Enabled = False
GetCursorPos NowPos
NowCount = 0
End Sub

Private Sub Timer1_Timer()
Dim tmpPos As POINTAPI
GetCursorPos tmpPos
If tmpPos.x = NowPos.x And tmpPos.y = NowPos.y Then
If Not Timer2.Enabled Then Timer2.Enabled = True
Else
Timer2.Enabled = False
NowCount = 0
End If
NowPos = tmpPos
Me.Caption = "当前鼠标坐标是:" & NowPos.x & "," & NowPos.y & "鼠标已经静止了" & NowCount & "分钟了哦"
End Sub

Private Sub Timer2_Timer()
NowCount = NowCount + 1
If NowCount = HandleTime Then MsgBox "你已经20分钟没动过了哦,退出我吗 ?"
End Sub
murphylau
推荐于2016-05-10 · TA获得超过435个赞
知道小有建树答主
回答量:547
采纳率:0%
帮助的人:840万
展开全部
Option Explicit

Private mChkMin As Long
Private mTmrCount As Long

Private Sub Form_Load()
Timer1.Interval = 60000 '1 min
Timer1.Enabled = True
mChkMin = 20 '
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

mTmrCount = 0 'reset count to 0

End Sub

'
'当关闭系统的时候点击右上角的小X 就直接退出系统了
'能不能写段代码 当点击小X(关闭按钮)的时候弹'出提示筐 确认是否关闭系统??

Private Sub Form_Unload(Cancel As Integer)
dim ret as long
ret = MsgBox(" 是否退出系统 ?", vbYesNo + vbInformation)
If ret = vbNo Then
Cancel = True
End If
End Sub

Private Sub Timer1_Timer()
mTmrCount = mTmrCount + 1
Dim ret As Long

If mTmrCount >= mChkMin Then
ret = MsgBox("已经" & mChkMin & "分钟无任何造作,是否退出系统", vbYesNo + vbInformation)
If ret = vbYes Then
End
End If
mTmrCount = 0
End If
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式