确定应用程序是否有任何活动?VB.NET

Jef*_*eff 4 vb.net

有谁知道在VB.net Windows窗体应用程序中检测最近活动的方法?

我们有一个零售商店,用户共享地板计算机,应用程序将在每台机器上,并需要在使用前登录.我试图找到一种方法来自动关闭应用程序,如果它已经空闲,让我们说10分钟.

我想我可以用当前的Windows登录会话做类似的事情 - 设置一个gp,在10分钟不活动后记录用户 - 但如果有一个简单的,非内存密集的方式在vb.net中这样做我宁愿使用那种方法

谢谢

Han*_*ood 5

应用程序启动时,为Application.Idle事件创建处理程序.还要创建一个10分钟计时器的对象.该Appliation.Idle事件引发的每个事件队列为空的时间.如果移动鼠标,则会引发事件.如果按某个键,则会引发事件.请注意,您不能使用Handles关键字Application.Idle. Handles仅适用于本地十分对象,而不适用于静态对象.

Public Sub MainForm_Load(sender As Object, e As EventArgs) Handles MainForm.Load
    AddHandler System.Windows.Forms.Application.Idle, AddressOf Application_Idle
    ' TODO: Create the 10-minute timer.
End Sub

Private Sub Application_Idle(sender As Object, e As EventArgs)  
    ' TODO: Restart the 10-minute timer.
End Sub

' This assumes your TenMinuteTimer object has an Expire event.  Do what works for you instead.
Private Sub TenMinuteTimer_Expire(sender As Object, e As EventArgs) Handles TenMinuteTimer.Expire
    ' TODO: Close the application safely.
End Sub
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,如果用户启动的操作时间超过10分钟,则会Application.Idle在之后提高TenMinuteTimer.Expire.如果您希望可能发生这种情况,请确保在执行长时间运行的代码之前禁用TenMinuteTimer,然后再次启用它.