怎样用VB获取系统不响应时间(就是鼠标键盘无动作)?

如题想做个1小时鼠标键盘无动作,自动关机的程序。。。Windows的屏保里面的电源管理有问题。无法使用这功能,自己想做一个,实现这个功能。... 如题
想做个1小时鼠标键盘无动作,自动关机的程序。。。

Windows的屏保里面的电源管理 有问题。无法使用这功能,自己想做一个,实现这个功能。
展开
 我来答
weiyicool
2007-08-31 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:82.8万
展开全部
' 获得鼠标和键盘动作的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 Long

' 控制系统关机的Api
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Const EWX_SHUTDOWN = 1
Const EWX_LOGOFF = 0
Const EWX_REBOOT = 2
Const EWX_FORCE = 4

Dim mEvent As LASTINPUTINFO
Dim StopTime As Long ' 鼠标和键盘,开始无动作的时间
Dim PrvEvent As Long ' 上一次鼠标或者键盘的状态

Private Sub Timer1_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 (GetTickCount - StopTime) >= (60 * 60 * 1000) Then
Call ExitWindowsEx(EWX_LOGOFF Or EWX_FORCE Or EWX_SHUTDOWN, 0)
End If
End If

End Sub

窗体上有个Timer控件,Name:Timer1
刚写的,2000 server + vb6.0 测试通过
在世贸天阶灌篮的高飞燕草
2007-08-31 · TA获得超过2378个赞
知道大有可为答主
回答量:2070
采纳率:0%
帮助的人:2026万
展开全部
下个钩子,然后不停的捕捉 键盘和鼠标事件
如果1个小时没捕捉到
关机
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
甲虫tony
2007-08-31 · TA获得超过288个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:348万
展开全部
啊哦。我最近也在想这个问题耶。也没有想出什么办法。如果你有什么办法告诉我声哦。先谢谢了。QQ:289335023
感觉要用MouseMove吧。。。好好想想。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式