Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

检测用户输入及超时弹出屏保(登录)窗体

时 间:2009-05-20 10:54:47
作 者:Trynew   ID:2645  城市:广州
摘 要:当程序长时间没有动作或输入的话,弹出登陆窗体的功能或者关闭程序退出
正 文:

点击下载此附件

当程序长时间没有动作或输入的话,弹出登陆窗体的功能或者关闭程序退出

土方法就是象例子1一样,设置一个公共变量,在窗体的击键、鼠标时间中重设这个公共变量为当前时间,然后在窗体的计时器时间中比较当前时间和这个变量的差,大于设定值就打开启动窗体就行了。但这样有一个局限,就是只能在设置了程序的窗体中有效,如“主窗体”。

如果要对整个程序都有效,则要设定一个专门的检测窗体,可以在登录时隐藏打开在后台运行,利用API函数对用户的输入进行监测和定时对比控制。另外,这种技巧还可以应用于一些对话框的定时关闭处理,把代码中退出程序或弹出屏保(登录窗体)的语句改为设置默认应答及关闭本窗体即可。

时间及用户录入检测窗体的代码如下:

Option Compare Database
Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type LASTINPUTINFO
       cbSize  As Long
       dwTime  As Long
End Type
Dim lii   As LASTINPUTINFO
Dim zjs, djs
Dim msgcount As Integer

Private Sub Form_Timer()  
'此为窗体的计时事件
 Dim mytime   As Double
  lii.cbSize = Len(lii)
  GetLastInputInfo lii
  mytime = GetTickCount - lii.dwTime
  Debug.Print mytime & "ms"
  zjs = mytime \ 1000
  djs = 7200 - zjs
  Me.Txt1 = "离系统关闭时间: " & djs
  if djs =0 then
'此句代码可改为弹出屏保(登录窗体)的语句或改为设置默认应答及关闭本窗体
  quit

  end if
End Sub



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助