检测用户输入及超时弹出屏保(登录)窗体-trynew
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


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

发表时间:2009/5/20 10:54:47 评论(0) 浏览(8012)  评论 | 加入收藏 | 复制
   
摘 要:当程序长时间没有动作或输入的话,弹出登陆窗体的功能或者关闭程序退出
正 文:

点击下载此附件

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

土方法就是象例子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群(群号:198465573)
 
 相关文章
快速开发平台--获取当前登录名\获取当前用户名\获取当前操作员的代...  【红尘如烟  2013/5/13】
【Access源码】自动登录及记住密码登录窗口示例  【漏蛧尐魚℡  2013/5/16】
Access开发平台{专业版}编译该函数时发生错误。Visual ...  【麥田  2013/6/8】
快速开发平台--不能登录,输入帐号密码按Login登录按钮无反应的...  【麥田  2013/6/20】
常见问答
技术分类
相关资源
文章搜索
关于作者

trynew

文章分类

文章存档

友情链接