GetKeyboardState в неактивной форме? - VB
Формулировка задачи:
Как сделать, чтобы форма пряталась, появлялась (Visible) под управлением клавиши, например Caps Lock? Пробовал "сунуть" GetKeyboardState в Timer, - но, если форма не активна (или уже не видима) не работает! Помогите! Заранее благодарю.
Решение задачи: «GetKeyboardState в неактивной форме?»
textual
Листинг программы
- Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
- Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
- Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
- Global Cnt As Long, sSave As String, sOld As String, Ret As String
- Dim Tel As Long
- Function GetPressedKey() As String
- For Cnt = 32 To 128
- 'Get the keystate of a specified key
- If GetAsyncKeyState(Cnt) <> 0 Then
- GetPressedKey = Chr$(Cnt)
- Exit For
- End If
- Next Cnt
- End Function
- Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
- Ret = GetPressedKey
- If Ret <> sOld Then
- If Ret = "H" Then
- Form1.Hide
- End If
- If Ret = "S" Then
- Form1.Show
- End If
- sOld = Ret
- End If
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д