Как узнать, сфокусировано ли какое-либо текстовое поле?

Есть ли у AutoHotkey условие, чтобы определить, находится ли какое-либо текстовое поле (или документ Word, панель поиска браузера, что-либо с включенным вводом текста) в настоящее время? Я хочу использовать некоторые горячие клавиши для ввода символов Unicode, когда это возможно, и выполнять другие действия, когда это невозможно.


person MinistrChleba    schedule 19.08.2013    source источник
comment
Нет простого способа увидеть это - это зависит от каждого случая. Вы можете проверить это с помощью AutoIt3 Windows Spy, который поставляется с Autohotkey. Запустите его, а затем сфокусируйте текстовое поле и посмотрите на автозапуск Spy. если он не показывает значительных изменений, у вас будут проблемы, и в большинстве случаев не стоит пытаться. Если вы пытаетесь изменить только одну часть программного обеспечения, возможно, вы сможете что-то сделать с помощью ImageSearch или подобных хаков. Одна из идей, например, состоит в том, чтобы сохранить снимок экрана, отправить одну клавишу, которая ничего не делает за пределами текстового поля, сделать еще один снимок экрана и сравнить....   -  person 576i    schedule 19.08.2013


Ответы (1)


Это простой пример получения имени текущего элемента управления.

F1::
ControlGetFocus, OutputVar, A
if ErrorLevel
    MsgBox, The target window doesn't exist or none of its controls has input focus.
else
    MsgBox, Control with focus = %OutputVar%

Это работает на большом количестве окон, но в целом имеет значение, какой тип элементов управления использует приложение, чтобы возвращать значение.

person Elliot DeNolf    schedule 19.08.2013