Как отследить NumLock или CapsLock? - VB
Формулировка задачи:
Как сделать, чтобы форма появлялась и "пряталась" в зависимости от состояния Num Lock. С GetKeyboardState возникли проблемы. Очень надо, спасибо! Можно прислать по мылу removed@mail.ru
Решение задачи: «Как отследить NumLock или CapsLock?»
textual
Листинг программы
- Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
- Private Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
- Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
- Private Type KeyboardBytes
- kbByte(0 To 255) As Byte
- End Type
- Dim ASD As Long, ASDOLD As Long, kbArray As KeyboardBytes
- Const VK_NUMLOCK = &H90
- Const VK_SCROLL = &H91
- Const VK_CAPITAL = &H14
- ' ----------------------
- Private Sub Form_Load()
- If GetKeyState(&H90) = 1 Then
- Me.Visible = True
- Else
- Me.Visible = False
- End If
- Timer.Enabled = True
- End Sub
- ' -----------------------
- Private Sub Timer_Timer()
- ASD = GetAsyncKeyState(VK_NUMLOCK)
- If ASD = ASDOLD Then Exit Sub
- If ASD < 0 And ASDOLD < 0 Or ASD > 1 And ASDOLD > 1 Then Exit Sub
- ASDOLD = ASD
- If ASD <> 0 Then
- If Me.Visible = False Then
- Me.Visible = True
- kbArray.kbByte(VK_NUMLOCK) = 1
- SetKeyboardState kbArray
- Me.WindowState = 0
- Me.SetFocus
- Else
- Me.Visible = False
- End If
- End If
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д