检查“任何”和“所有键盘和鼠标使用情况”



VB .NET是否有任何检查方法以确保使用键盘和鼠标?我知道有一种方法可以测试何时按下某个键或移动光标,但我想检查它们何时未被使用。

知道吗?

不久前,我编写了一个信息亭应用程序,我需要在其中检测空闲时间。 这是我正在使用的代码:

Imports System.Runtime.InteropServices
Public Class Application
   <StructLayout(LayoutKind.Sequential)> _
   Private Structure LASTINPUTINFO
      <MarshalAs(UnmanagedType.U4)> _
      Public cbSize As Integer
      <MarshalAs(UnmanagedType.U4)> _
      Public dwTime As Integer
   End Structure
   <DllImport("user32.dll")> _
   Private Shared Function GetLastInputInfo(ByRef plii As LASTINPUTINFO) As Boolean
   End Function
   Private idletime As Integer
   Private lastInputInf As New LASTINPUTINFO()
   Public Function GetIdleTime() As Integer
      idletime = 0
      lastInputInf.cbSize = Marshal.SizeOf(lastInputInf)
      lastInputInf.dwTime = 0
      If GetLastInputInfo(lastInputInf) Then
         idletime = Environment.TickCount - lastInputInf.dwTime
      End If
      If idletime > 0 Then
         Return CType(idletime / 1000, Integer)
      Else
         Return 0
      End If
   End Function
End Class

此代码应该允许您"确保未使用键盘和鼠标?

您将此代码放入类中。 根据应用中的需要,您将调用 GetIdleTime((,它返回应用处于空闲状态的秒数。 此方法是 Windows API 调用的包装器。 因此,在 5 分钟示例中,您将编写:

  Dim a = New Application()
  ...
  If a.GetIdleTime() > 300 Then
     'do something useful
  End If

最新更新