Monitor Mouse and Keyboard Activity

By | 2019-09-25

With just a little bit of API goodness, you can monitor mouse and keyboard activity.

Option Explicit

'===========================================================
'TYPE
'===========================================================
Private Type POINTAPI
x As Integer
y As Integer
End Type
'===========================================================
'API
'===========================================================
Private Declare Sub GetCursorPos Lib "user32.dll" (lpPoint As POINTAPI)
Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
'===========================================================
'Variables
'===========================================================
Private posOld As POINTAPI
Private posNew As POINTAPI

'===========================================================
'InputCheck
'===========================================================
Public Function InputCheck() As Boolean
    Dim i As Integer

'Get the current mouse cursor coordinates
    Call GetCursorPos(posNew)
    'Compare with old coordinates
    If ((posNew.x <> posOld.x) Or (posNew.y <> posOld.y)) Then
        posOld = posNew
        InputCheck = True
        Exit Function
    End If
    'Check keys state
    For i = 0 To 255
        If (GetAsyncKeyState(i) And &H8001) <> 0 Then
            InputCheck = True
            Exit Function
        End If
    Next i
    InputCheck = False
End Function

Usage

Create a Form with a Label and a Timer, then add this code:

Option Explicit

Private Sub Timer1_Timer()
    Label1.Caption = InputCheck
End Sub

Author: dwirch

Derek Wirch is a seasoned IT professional with an impressive career dating back to 1986. He brings a wealth of knowledge and hands-on experience that is invaluable to those embarking on their journey in the tech industry.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.