Не буду скрывать т.к. это актуальная тема и не трудно будет догадаться что мне это нужно для вайбера, я пытаюсь получить HWnd объектов в вайбере и вообще не как не получается, если смотреть по классам то они все имеют один и тот же класс Qt5QWindowIcon. Далее например в начале нахожу окно: Code: Hnd:= FindWindow(nil,'Viber +**********'); Потом пытаюсь получить хоть какой то дочерний объект: Code: function CallBack(h: HWnd; lParam: LPARAM):Bool; stdcall; var NameArr: array [0..255] of Char; begin GetClassName(h,NameArr,255); ShowMessage(String(NameArr)); end; EnumChildWindows(Hnd,@CallBack,0); Но нет нечего не находит. Подскажите куда гуглить) WinSpy,Spy++ и остальное не предлагать, они тоже нечего интересного не показывают.
Они и не покажут, так как по сути там только окно есть окно, а всё остальное (кнопки, лайн едиты и так далее) рисуются Qt своими силами.
Что можешь подсказать, чтоб не жать по координатам курсором, а подключаться к этим кнопкам программно через винапи
Можешь взять дизассемблер, найти обработчики нажатий для нужных кнопок, взять их адреса (или составить сигнатуры для динамического поиска), найти, где взять значение this для передачи обработчику, написать дллку или базонезависимый код, который будет получать от твоей основной программы ивенты и вызывать нужные обработчики, подгрузить код в клиент вайбера. Это как вариант...
Вайбер так и не распотрошили.. хм.. А я то думал что тема себя изжила. Ориентируйся по контролам. В винде сработает.