Как заставить неактивное приложение перехватить нажатие клавиши? - VB

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

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

Надо чтобы программа выполняла какую-нибудь команду (например останавливала и обратно включала таймер, ну, скажем по F12). Но чтобы это могло происходить, когда приложение не активно или даже minimized. У меня в связи с этим никаких идей. Извините, я новичек. Спасибо.

Решение задачи: «Как заставить неактивное приложение перехватить нажатие клавиши?»

textual
Листинг программы
''Эта API функция позволяет получать код нажатой клавиши в независимости от активности приложения
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
 
Function GetPressedKey() As Long ''Эта процедурка будет возвращать код нажатой клавиши
Dim Cnt As Long ''Здесь мы будем хранить этот самый код
    For Cnt = 32 To 128 '' до 32 идут служебные символы, а после 128 - дополнительные, поэтому исключаем их из цикла
        If GetAsyncKeyState(Cnt) <> 0 Then '' в случае, если ни одна клавиша не нажата GetAsyncKeyState возвращает 0
            GetPressedKey = Cnt
            Exit For ''Выход из процедуры
        End If
    Next Cnt
End Function
 
Sub Timer1_Timer()
   If GetPressedKey = "123" Then MsgBox "Вы нажали F12, берегите природу мать вашу!!!" '' 123-код клавиши F12
End Sub

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


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

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

7   голосов , оценка 3.714 из 5
Похожие ответы