What i sometimes do is make the key only tick once so it wont repeat untill you release and press again.
On a timer with 50 or lower. Doesn't really matter if you have it lower since it only ticks once anyway.
Code:
If Keystate(Keys.F2) Then MsgBox("Only execute once")
Code:
#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