Vb.net winform和会话超时

Vb.net winform和会话超时,vb.net,winforms,session-timeout,Vb.net,Winforms,Session Timeout,我有一个vb.net winform,我想知道如何在其中添加类似会话超时的内容。例如,我将varialbe设置为10分钟,在这10分钟内,如果没有活动(没有鼠标/键盘交互),我想让用户注销。有人能就如何使这项工作在这个问题上提出一些看法吗 第一个问题,为什么要在winform中执行。我们通常在web表单中使用这些东西。但是,即使您想在WinForms中使用这样的东西,您也需要使用计时器类。 无论何时遇到活动,只要调用Stop然后立即调用Start即可重置计时器。在计时器的勾号事件中放置您想要的任

我有一个vb.net winform,我想知道如何在其中添加类似会话超时的内容。例如,我将varialbe设置为10分钟,在这10分钟内,如果没有活动(没有鼠标/键盘交互),我想让用户注销。有人能就如何使这项工作在这个问题上提出一些看法吗

第一个问题,为什么要在winform中执行。我们通常在web表单中使用这些东西。但是,即使您想在WinForms中使用这样的东西,您也需要使用
计时器类

无论何时遇到活动,只要调用
Stop
然后立即调用
Start
即可重置计时器。在
计时器的勾号
事件中放置您想要的任何代码(假设这是
System.Windows.Forms.Timer
),您就可以全部设置好了。

第一个问题,为什么要在winform中执行此操作。我们通常在web表单中使用这些东西。但是,即使您想在WinForms中使用这样的东西,您也需要使用
计时器类

无论何时遇到活动,只要调用
Stop
然后立即调用
Start
即可重置计时器。在
计时器的勾号
事件中放置您想要的任何代码(假设这是
System.Windows.Forms.Timer
),您就可以全部设置好了。

第一个问题,为什么要在winform中执行此操作。我们通常在web表单中使用这些东西。但是,即使您想在WinForms中使用这样的东西,您也需要使用
计时器类

无论何时遇到活动,只要调用
Stop
然后立即调用
Start
即可重置计时器。在
计时器的勾号
事件中放置您想要的任何代码(假设这是
System.Windows.Forms.Timer
),您就可以全部设置好了。

第一个问题,为什么要在winform中执行此操作。我们通常在web表单中使用这些东西。但是,即使您想在WinForms中使用这样的东西,您也需要使用
计时器类

无论何时遇到活动,只要调用
Stop
然后立即调用
Start
即可重置计时器。在
定时器的滴答声
事件中放入您想要的任何代码(假设这是
System.Windows.Forms.Timer
),您就可以全部设置好了。

如果您正在寻找一种方法来检测应用程序之外的输入,Amit的建议将不起作用

看看情况是否如此。调用并检查最后一个输入值应该会给您一些提示


如果您不担心用户离开您的应用程序,并且在未使用应用程序后注销,请使用Amit的方法在输入事件上重置计时器。

如果您正在寻找一种方法来检测应用程序之外的输入,Amit的建议将不起作用

看看情况是否如此。调用并检查最后一个输入值应该会给您一些提示


如果您不担心用户离开您的应用程序,并且在未使用应用程序后注销,请使用Amit的方法在输入事件上重置计时器。

如果您正在寻找一种方法来检测应用程序之外的输入,Amit的建议将不起作用

看看情况是否如此。调用并检查最后一个输入值应该会给您一些提示


如果您不担心用户离开您的应用程序,并且在未使用应用程序后注销,请使用Amit的方法在输入事件上重置计时器。

如果您正在寻找一种方法来检测应用程序之外的输入,Amit的建议将不起作用

看看情况是否如此。调用并检查最后一个输入值应该会给您一些提示


如果您不担心用户离开您的应用程序,并且在未使用该应用程序后注销,请使用Amit的方法在输入事件上重置计时器。

我建议您使用该事件。 不需要P/Invoke

Public Class Form1
    Private WithEvents _timer As Timer

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' 10 seconds for testing
        Me._timer = New Timer With {.Interval = 10000, .Enabled = True}

        AddHandler Application.Idle, AddressOf Me.Application_Idle
    End Sub

    Private Sub Application_Idle(sender As Object, e As EventArgs)
        Me._timer.Stop()
        Me._timer.Start()
    End Sub

    Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles _timer.Tick
        Me._timer.Stop()
        RemoveHandler Application.Idle, AddressOf Me.Application_Idle
        ' Do something to log the user out
        Me.Close()
    End Sub
End Class

我建议你使用这个活动。 不需要P/Invoke

Public Class Form1
    Private WithEvents _timer As Timer

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' 10 seconds for testing
        Me._timer = New Timer With {.Interval = 10000, .Enabled = True}

        AddHandler Application.Idle, AddressOf Me.Application_Idle
    End Sub

    Private Sub Application_Idle(sender As Object, e As EventArgs)
        Me._timer.Stop()
        Me._timer.Start()
    End Sub

    Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles _timer.Tick
        Me._timer.Stop()
        RemoveHandler Application.Idle, AddressOf Me.Application_Idle
        ' Do something to log the user out
        Me.Close()
    End Sub
End Class

我建议你使用这个活动。 不需要P/Invoke

Public Class Form1
    Private WithEvents _timer As Timer

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' 10 seconds for testing
        Me._timer = New Timer With {.Interval = 10000, .Enabled = True}

        AddHandler Application.Idle, AddressOf Me.Application_Idle
    End Sub

    Private Sub Application_Idle(sender As Object, e As EventArgs)
        Me._timer.Stop()
        Me._timer.Start()
    End Sub

    Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles _timer.Tick
        Me._timer.Stop()
        RemoveHandler Application.Idle, AddressOf Me.Application_Idle
        ' Do something to log the user out
        Me.Close()
    End Sub
End Class

我建议你使用这个活动。 不需要P/Invoke

Public Class Form1
    Private WithEvents _timer As Timer

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' 10 seconds for testing
        Me._timer = New Timer With {.Interval = 10000, .Enabled = True}

        AddHandler Application.Idle, AddressOf Me.Application_Idle
    End Sub

    Private Sub Application_Idle(sender As Object, e As EventArgs)
        Me._timer.Stop()
        Me._timer.Start()
    End Sub

    Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles _timer.Tick
        Me._timer.Stop()
        RemoveHandler Application.Idle, AddressOf Me.Application_Idle
        ' Do something to log the user out
        Me.Close()
    End Sub
End Class


因此,在登录期间,根据变量启动计时器(10分钟)。每当有活动时,通过调用stop重置计时器,然后再次调用start?如何检测是否存在活动?你能举个例子吗?谢谢你的建议。我能够在我的应用程序中实现此功能。请将其中一个答案标记为正确,或发布您自己的答案。因此,在登录期间,根据变量启动计时器(10分钟)。每当有活动时,通过调用stop重置计时器,然后再次调用start?如何检测是否存在活动?你能举个例子吗?谢谢你的建议。我能够在我的应用程序中实现此功能。请将其中一个答案标记为正确,或发布您自己的答案。因此,在登录期间,根据变量启动计时器(10分钟)。每当有活动时,通过调用stop重置计时器,然后再次调用start?如何检测是否存在活动?你能举个例子吗?谢谢你的建议。我能够在我的应用程序中实现此功能。请将其中一个答案标记为正确,或发布您自己的答案。因此,在登录期间,根据变量启动计时器(10分钟)。每当有活动时,通过调用stop重置计时器,然后再次调用start?如何检测是否存在活动?你能举个例子吗?谢谢你的建议。我可以在我的应用程序中使用此功能。请将其中一个答案标记为正确,或发布您自己的答案。您的应用程序或任何地方没有用户输入?是的,我的应用程序中有用户输入。您的应用程序或任何地方没有用户输入?是的,我的应用程序中有用户输入。您的应用程序或任何地方没有用户输入?是,我的应用中有用户输入。在你的应用中或任何地方没有用户输入?是的,我的应用中有用户输入。我不知道如何设置。你有没有办法给我提供一些示例代码来实现这一点?@user1884032他提供的链接中有示例代码我没有