

If Keystate(Keys.F2) Then MsgBox("Only execute once")
#Region "Keys"
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Keys) As Short
Dim hKeys As New Dictionary(Of Keys, Boolean)
Public Function Keystate(ByVal key As Keys) As Boolean
Dim St As Integer = GetKeyState(key)
If Not hKeys.ContainsKey(key) Then hKeys.Add(key, False)
If St = -127 OrElse St = -128 Then
If Not hKeys(key) Then
hKeys(key) = True
Return True
End If
Else
hKeys(key) = False
Return False
End If
Return False
End Function
#End Region
