Как отследить NumLock или CapsLock? - VB

Узнай цену своей работы

Формулировка задачи:

Как сделать, чтобы форма появлялась и "пряталась" в зависимости от состояния Num Lock. С GetKeyboardState возникли проблемы. Очень надо, спасибо! Можно прислать по мылу removed@mail.ru

Решение задачи: «Как отследить NumLock или CapsLock?»

textual
Листинг программы
  1. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  2. Private Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
  3. Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
  4. Private Type KeyboardBytes
  5.      kbByte(0 To 255) As Byte
  6. End Type
  7. Dim ASD As Long, ASDOLD As Long, kbArray As KeyboardBytes
  8. Const VK_NUMLOCK = &H90
  9. Const VK_SCROLL = &H91
  10. Const VK_CAPITAL = &H14
  11. ' ----------------------
  12. Private Sub Form_Load()
  13. If GetKeyState(&H90) = 1 Then
  14.    Me.Visible = True
  15. Else
  16.     Me.Visible = False
  17. End If
  18. Timer.Enabled = True
  19. End Sub
  20. ' -----------------------
  21. Private Sub Timer_Timer()
  22.  ASD = GetAsyncKeyState(VK_NUMLOCK)
  23.  If ASD = ASDOLD Then Exit Sub
  24.  If ASD < 0 And ASDOLD < 0 Or ASD > 1 And ASDOLD > 1 Then Exit Sub
  25.   ASDOLD = ASD
  26. If ASD <> 0 Then
  27.   If Me.Visible = False Then
  28.        Me.Visible = True
  29.             kbArray.kbByte(VK_NUMLOCK) = 1
  30.             SetKeyboardState kbArray
  31.        Me.WindowState = 0
  32.        Me.SetFocus
  33.    Else
  34.        Me.Visible = False
  35.     End If
  36. End If
  37. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы