Office中国论坛/Access中国论坛

标题: 获取系统闲置了多久(用户多久没有操作)的源码 [打印本页]

作者: admin    时间: 2020-3-15 23:20
标题: 获取系统闲置了多久(用户多久没有操作)的源码
获取系统闲置了多久(用户多久没有操作)的源码我们有时需要在系统闲置时,去进行一些操作,如让系统进行自动备份,让系统弹出屏幕保护,让系统播放休息音乐,让系统自动杀毒 强制自动关机等等。
但如何判断系统是否处理闲置状态呢,一般我们是判断最近有否输入或操作。这就需要用到API函数。完整代码如下:


窗体函数代码:
Option ExplicitPrivate Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean  '获取上一次输入的相关信息Private Declare Function GetTickCount Lib "kernel32" () As Long'  此函数的作用是获得系统运行了多少时间(运行了多久),单位是毫秒'MSDN原文:The GetTickCount function retrieves the number of milliseconds that have elapsed since the system was started. Private Type LASTINPUTINFO    cbSize As Long    dwTime As LongEnd TypeDim lii As LASTINPUTINFOPrivate Sub Form_Load()Timer1.Interval = 1000    lii.cbSize = Len(lii)'    '看API声明,API里要求这个变量的cbSize保存为这个变量的长度,这样才可以被API正确操作End SubPrivate Sub Timer1_Timer()   '如果是Access中使用,请改为Form_Timer事件,且设置定时器间隔属性为1000毫秒--Office中国提醒    If GetLastInputInfo(lii) Then        If (GetTickCount - lii.dwTime) / 60000 >= 15 Then            Shell "shutdown.exe -s -t 180"            Call MsgBox("由于本机15分钟没有操作,如果3分钟后没有反应,系统将强制关机", vbYesNo + vbExclamation + vbDefaultButton2, "提示")        End If    End IfEnd Sub



作者: roych    时间: 2020-3-16 12:32
附上“屁股和凳子”的示例:
http://www.office-cn.net/thread-95762-1-1.html




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3