Public Const VK_LWIN As Long = &H5B '(91)
Public Const VK_RWIN As Long = &H5C '(92)
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print KeyCode
End Sub
ger_kar писал(а):А причем там таймер?
Если вне формы, то тогда надобно хук ставить
На форуме валом инфы на эту тему
Например здесь
Declare Function GetAsyncKeyState Lib "USER32.DLL" (ByVal vKey As Long) As Integer
If GetAsyncKeyState(VK_LWIN) = -32768 Then MsgBox "Нажат левый Win"
If GetAsyncKeyState(VK_RWIN) = -32768 Then MsgBox "Нажат правый Win"
Public Declare Function GetInputState Lib "user32" () As Long
Public Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
ger_kar писал(а):Кроме GetAsyncKeyState можно заюзать GetInputState, GetKeyboardState, GetKeyState
Декларации:
- Код: Выделить всё
Public Declare Function GetInputState Lib "user32" () As Long
Public Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Справку по функциям можно посмотреть здесь: GetInputState, GetKeyboardState
В чём разница между GetKeyState и GetAsyncKeyState читать здесь
ger_kar писал(а):Надо просто все делать внимательно!
GetAsyncKeyState А не GetAsyncKeystate
ger_kar писал(а):Ну если делать как попало то и asynckeystate пойдет, а если делать правильно и как положено, тогда хук.
Никогда не пользовался hotkey. Но это не самый надежный вариант, ибо могут быть конфликты. Хук ИМХО более надежная тема. Хотя конечно все зависит от задачи. А тут суть затеи не понятна.Qwertiy писал(а):Зачем хук, когда можно hotkey объявить просто?
arthur2 писал(а): Но GetAsyncKeyState не годится...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 77