Я пытаюсь перехватить нажатия клавиш с помощью GetAsyncKeystate.
Я знаю, что это можно сделать с помощью Application.Onkey
, но я хочу убедиться, что код не запускается несколько раз, когда удерживается клавиша, и я знаю, что это можно сделать с помощью GetAsyncKeystate, сохраняя предыдущее состояние в переменной для дальнейшего использования. сравнение.
В настоящее время в общедоступном модуле объявлено следующее:
#If Win64 Then
Public Declare PtrSafe Function GetAsyncKeystate Lib "user32" _
(ByVal vKey As Long) As Integer
#Else
Public Declare Function GetAsyncKeystate Lib "user32" _
(ByVal vKey As Long) As Integer
#End If
Затем в модуле, который содержит мой основной код, я пытаюсь сделать что-то вроде:
Sub KeyPressed
'If KeyPressed is X key then
'Do something
'Or if KeyPressed is Y key then
'Do something else
End Sub
Любая помощь будет оценена.