GetKeyboardState в неактивной форме? - VB

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

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

Как сделать, чтобы форма пряталась, появлялась (Visible) под управлением клавиши, например Caps Lock? Пробовал "сунуть" GetKeyboardState в Timer, - но, если форма не активна (или уже не видима) не работает! Помогите! Заранее благодарю.

Решение задачи: «GetKeyboardState в неактивной форме?»

textual
Листинг программы
  1. Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
  2. Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
  3. Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  4. Global Cnt As Long, sSave As String, sOld As String, Ret As String
  5. Dim Tel As Long
  6. Function GetPressedKey() As String
  7.     For Cnt = 32 To 128
  8.         'Get the keystate of a specified key
  9.        If GetAsyncKeyState(Cnt) <> 0 Then
  10.             GetPressedKey = Chr$(Cnt)
  11.             Exit For
  12.         End If
  13.     Next Cnt
  14. End Function
  15. Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
  16.     Ret = GetPressedKey
  17.     If Ret <> sOld Then
  18.       If Ret = "H" Then
  19.           Form1.Hide
  20.       End If
  21.         If Ret = "S" Then
  22.            Form1.Show
  23.         End If
  24.         sOld = Ret
  25.     End If
  26. End Sub

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


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

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

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

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

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

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