Что нового

Можно ли именно перехватить нажатие клавиши (не путать с отслеживанием).

agikon

Знающий
Сообщения
789
Репутация
17
Подскажите пожалуйста можно ли отследить нажатие клавиши а потом её именно перехватить и не дать выполнится на ПК.
То есть смотрите, например нажимаю клавишу А, и скрипт её отслеживает, но как её не пропустить дальше? А то выходит что если я нажимаю клаишу А, и в этот момент курсор находится над блокнотом, если курсом стоит в данный момент над блокнотом, или над любой другой програмой, туда тоже производится ввод буквы А.

А хотелось бы чтобы скрипт отслеживал но не пропускал дальше букву А.
Надеюсь понятно обьяснил.
Вот можно ли что-то придумать чтобы ввод не производился ?
Возможно я не правильно применил слово "перехват", но имеется ввиду чтобы сделать так чтобы не производился ввод этой клавиши а програму над которой висит в даный момент курсор.


Код:
#include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>
#include <GUIEdit.au3>
#include <Misc.au3>

$GUI = GUICreate("", 200, 150)
GUISetState(@SW_SHOW, $GUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch

    If _IsPressed(41) Then ; 41 клавиши А
        _action()
    else
    endif
WEnd

func _action()
    MsgBox(64,'','Нажата клавиша А', '')
endfunc
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Сделайте клавишу "горячей" (регистр учитывается)
Код:
HotKeySet("a", "_action")
HotKeySet("{enter}", "_action")
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
InnI
madmasles
Спасибо.
Действительно хоткеи это именно то что и требовалось.
Вот попробовал и действительно хоткеи не посылаются в виндовс, а лишь выполняются скриптом.
 
Верх