1

Тема: AHK: Положение клавиатурного фокуса

Есть ли в AHK способы определять положение клавиатурных курсоров (фокусов) в контролах типа TreeView и ListView?

Вариации на эту тему: нашёл только переменные A_CaretX и A_CaretY — определяют коорд. текстового курсора ввода в контроле типа  Edit; ну и ControlGetFocus, определяющий контрол, на котором стоит клавиатурный фокус. Неужели это — всё?

2

Re: AHK: Положение клавиатурного фокуса

Положение курсора над контролом и клавиатурный фокус на нём — разные вещи. Первое определяется с помощью MouseGetPos в параметре OutputVarControl, второе — с помощью ControlGetFocus.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: mih, 2010-12-30 18:42:59)

Re: AHK: Положение клавиатурного фокуса

Как-бы мышь вообще отвалилась, есть одна клавиатура. Именно в этом смысле я написал о ControlGetFocus, указывающий на активный контрол В ЦЕЛОМ; и о A_CaretX и A_CaretY, которые работают ВНУТРИ контрола, но — только в "Edit". А о клавиатурном фокусе в "TreeView" и "ListView" можно что-нибудь узнать?

4

Re: AHK: Положение клавиатурного фокуса

mih пишет:

А о клавиатурном фокусе в "TreeView" и "ListView" можно что-нибудь узнать?

А что именно нужно узнать?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: mih, 2010-12-30 19:43:23)

Re: AHK: Положение клавиатурного фокуса

Хоть что-нибудь: X и Y; случай, когда фокус вроде есть, а выделения в нём нет; какие-нибудь признаки, отличающие один выделенный пункт дерева (списка) — от другого. Например, мне надо засечь событие передвижения выделенного пункта дерева (списка).

Хоть что-нибудь — а я приспособлю. В документации не нашёл, но у вас же есть всякие хитрости?

6

Re: AHK: Положение клавиатурного фокуса

Координаты контрола — ControlGetPos
Выделенные строки — ControlGet
Про передвижение выделенного пункта — не знаю.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: mih, 2010-12-30 19:58:59)

Re: AHK: Положение клавиатурного фокуса

ControlGet — чего-то я проморгал, да. Там только "ListView", но тоже хорошо. Спасибо за наводку.

8

Re: AHK: Положение клавиатурного фокуса

А вот пример для получения выделенной строки в TreeView.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9 (изменено: mih, 2010-12-31 04:06:48)

Re: AHK: Положение клавиатурного фокуса

Оказалось, что ControlGet работает со списком исключительно вида "SysListView32",
если он называется чуть по другому — отказ. Пример "вот" тоже заработал у меня только с Проводником, но, может, и не разобрался с ним.

10

Re: AHK: Положение клавиатурного фокуса

Ну да, АНК со стандартными контролами работает. Поскольку их система сообщений всем известна из документации Microsoft. А что там нагородил некий разработчик Х в своём контроле Y, автору АНК известно не было, так что отсюда и результат, точнее, его отсутствие.