以下是一段主程序代码 '获得鼠标和键盘动作的Api
Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean
Private Type LASTINPUTINFO
cbSize As Long
dwTime As Long
End Type
' 获得当前时间 单位为毫秒
Private Declare Function GetTickCount Lib "kernel32" () As LongDim mEvent As LASTINPUTINFO
Dim StopTime As Long ' 鼠标和键盘,开始无动作的时间
Dim PrvEvent As Long ' 上一次鼠标或者键盘的状态Private Sub Timer2_Timer()
mEvent.cbSize = Len(mEvent)
GetLastInputInfo mEvent
Debug.Print mEvent.dwTime
' 判断鼠标和键盘的状态,如果状态改变,则重新设置监视时间,保存当前状态
If mEvent.dwTime <> PrvEvent Then
PrvEvent = mEvent.dwTime
StopTime = GetTickCount
Else
' 如果当前时间与开始监视时间超过3,600,000 Ms 则显示验证窗口
If StopTime >= 60 * 60 * 1000 Then 》》》》》测试到这里程序显示数据溢出!
frm_Alogin.Show 1
End If
End IfEnd Sub
vb 当程序运行60分钟后无键盘或鼠标动作时,如何实现程序自动锁定?
答案:4 悬赏:0 手机版
解决时间 2021-04-07 18:59
- 提问者网友:孤山下
- 2021-04-07 05:44
最佳答案
- 五星知识达人网友:不如潦草
- 2021-04-07 07:06
Dim IOInfo As LASTINPUTINFO'
Dim lngBak As LongDim lngEnd As LongDim lngCnt As Long'Private Sub Form_Load() lngEnd = 3600 '设置停止时间,单位为秒,你可以先设置60秒查看效果 Timer1.Interval = 1000
Timer1.Enabled = True
End Sub'Private Sub Timer1_Timer() IOInfo.cbSize = Len ( IOInfo)
Call GetLastInputInfo (IOInfo) If lngBak <> IOInfo.dwTime Then '鼠标键盘有操作时计数器清0
lngBak = IOInfo.dwTime
lngCnt = 0
End If
'
lngCnt = lngCnt + 1 ' If lngCnt = lngEnd Then
Timer1.Enabled = False
MsgBox "到了1小时后自动停止计时器", 64
End If
End Sub
Dim lngBak As LongDim lngEnd As LongDim lngCnt As Long'Private Sub Form_Load() lngEnd = 3600 '设置停止时间,单位为秒,你可以先设置60秒查看效果 Timer1.Interval = 1000
Timer1.Enabled = True
End Sub'Private Sub Timer1_Timer() IOInfo.cbSize = Len ( IOInfo)
Call GetLastInputInfo (IOInfo) If lngBak <> IOInfo.dwTime Then '鼠标键盘有操作时计数器清0
lngBak = IOInfo.dwTime
lngCnt = 0
End If
'
lngCnt = lngCnt + 1 ' If lngCnt = lngEnd Then
Timer1.Enabled = False
MsgBox "到了1小时后自动停止计时器", 64
End If
End Sub
全部回答
- 1楼网友:酒者煙囻
- 2021-04-07 09:01
简单!
用 api 函数,enablewindow()。
详细说明:
让窗口拒绝接受键盘和鼠标事件
声明:
private declare function enablewindow lib "user32" (byval hwnd as long, byval fenable as long) as long
使用:
'拒绝接受键盘和鼠标事件
call enablewindow(form.hwnd, 0)
'允许接受键盘和鼠标事件
call enablewindow(form.hwnd, 1)
- 2楼网友:妄饮晩冬酒
- 2021-04-07 08:21
Dim StopTime As Double ' 鼠标和键盘,开始无动作的时间你度着改成这样吧
- 3楼网友:山河有幸埋战骨
- 2021-04-07 08:08
Private Sub Timer1_Timer()mEvent.cbSize = Len(mEvent)
GetLastInputInfo mEvent
StopTime = mEvent.dwTime
Debug.Print GetTickCount - StopTime
If GetTickCount - StopTime >= 5000 Then ' Form1.Show 1
End IfEnd Sub虽然你已经结题,我调试了一下,这个没问题,给你吧
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯