Модифицировать чужой диалог?
От: удусекшл  
Дата: 26.03.21 14:37
Оценка:
Всем привет!

Давно не брал я в руки шашки, поэтому решил спросить, бо всего сразу не соображу уже.

Надо: залезть в чужое приложение; перехватить некоторые диалоги (обычно с TabControl'ом) и расширить их — добавить изменение размера диалога и соответственно сдвигание контролов; добавить контролов на табы — допустим, есть TextBox, в нём список значений, разделённых запятой (или точкой с запятой, или ещё каким символом). К этому TextBox'у надо справа добавить небольшую кнопочку — [...], при нажатии на которую открывается диалог, в котором строка из контрола разбита по разделителям и они добавлены в List control — типа как в десятке переменные окружения редактируются. Это как минимум, что придумалось, возможно будут потом ещё идеи.

И да, вроде если я программно текст меняю, то таких событий, как при изменении пользователем — в диалоговую процедуру вроде не будет отсылаться. Я не знаю, в какой момент данные извлекаются из контролов — может, сразу по изменению, а может — при закрытии диалога по [Ok]. Если первое, то надо будет эмулировать полное удаление содержимого поля пользователем и затем вставку (или набор с клавы) текста тоже пользователем.

Залезать буду легально, совсем грязных хаков не надо, всё — с ведома пользователя. Может, буду стартовать своё приложение, грузить нужное, подгружать DLL к нему и запускать его. Или, возможно, DLL добавится в список загрузки и будет грузиться ко всём приложениям, и реагировать только на те, где имя и/или путь подходят.

Нужное приложение, похоже, написано на MFC (смотрел WinSpy'ем), никаких там Qt и прочих извратов, все контролы самые что ни на есть виндовые родные.

Если есть что-то готовое, на эту тему — тоже буду рассматривать. Например, AutoIt — он смогёт такое? Или ещё кто-нибудь?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.