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