Изменение каретки текста (ширина, цвет) для Windows элементов управления, принадлежащих другому процессу - PullRequest
0 голосов
/ 26 апреля 2020

Я хочу как-то повлиять на форму или цвет каретки (курсора) текста, чтобы указать разные режимы. Это должно повлиять либо на текущее окно произвольного приложения, либо на всю систему.

Оно должно быть мгновенным, поэтому изменение значения реестра для параметров каретки недостаточно.

Как обсуждается в Autohotkey DLLcall для CreateCaret возвращает 0 (функция не выполнена), но A_LastError также равен 0 (функция завершилась успешно) , я пытался использовать user32 CreateCaret() API для изменения каретки процесса Notepad ( через скрипт AutoHotKey). Это не работает, по-видимому, потому что API не позволит вам изменить курсор другого процесса.

Я знаю, что это должно быть возможно, потому что AML Maple удается изменить цвет курсора на основе на текущем языке клавиатуры.

У меня недостаточно опыта реверс-инжиниринга, чтобы понять, что делает Maple, и я не уверен, будет ли это законно или этично. Я отправил им сообщение несколько месяцев go, спрашивая, что они использовали, но без ответа.

Я открыт для любых предложений, на любом языке, независимо от того, насколько они креативны. Мое окончательное использование будет реализовано в AutoHotKey, но все, что может создать DLL или EXE, будет приемлемым.

Однако, решение, которое использует только Windows API, будет предпочтительным.

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

...