Как отследить 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д