Всем привет.
Возник простой вопрос — как в произвольный момент времени проверить, нажата ли на клавиатуре в данный момент какая-то конкретная клавиша (например Shift). Идея такая — в зависимости от того, прижат ли на клаве shift, по-разному реагировать на клик по кнопке в тулбаре. Вроде как-то это делалось, а вот как — не могу вспомнить. Подскажите пожалуйста кто знает.
... << RSDN@Home 1.0 beta 1>> (np: Underworld — dark & long)
Здравствуйте, alexm1202, Вы писали:
A>Возник простой вопрос — как в произвольный момент времени проверить, нажата ли на клавиатуре в данный момент какая-то конкретная клавиша (например Shift). Идея такая — в зависимости от того, прижат ли на клаве shift, по-разному реагировать на клик по кнопке в тулбаре. Вроде как-то это делалось, а вот как — не могу вспомнить. Подскажите пожалуйста кто знает.
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Const vbKeyLShift = &HA0
Const vbKeyRShift = &HA1
Const vbKeyLControl = &HA2
Const vbKeyRControl = &HA3
Const vbKeyLMenu = &HA4
Const vbKeyRMenu = &HA5
Private Sub Timer1_Timer()
Label1.Caption = "Shift=" & bState(vbKeyShift) & "," & bState(vbKeyLShift) & "," & bState(vbKeyRShift) & _
" Ctrl=" & bState(vbKeyControl) & "," & bState(vbKeyLControl) & "," & bState(vbKeyRControl) & _
" Alt=" & bState(vbKeyMenu) & "," & bState(vbKeyLMenu) & "," & bState(vbKeyRMenu)
End Sub
Function bState(bs As Integer) As Boolean
bState = CBool(GetKeyState(bs) And &H80)
End Function