![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Постоянный идентификатор окна (контрола)
Buzirat © (2012-01-12 20:30:00)Решил сделать русификатор "на лету", нужно найти все контролы в чужом приложении "в ручную" (буду искать WindowFromPoint), а потом автоматически, когда уже SetWindowText вызыватся будет. Вот думаю, как их искать, если caption-ы будут меняться, есть у них какой нить handle который при каждом запуске будет одним и тем же на разных машинах?
han_malign (2012-01-13 10:02:00) [1]Если забыть про безоконные элементы управления:
Целевые окна, обычно имеют имя класса довольно точно идентифицирующие вид(тип)окна(WndProc)... Соответственно в контексте процесса конкретного приложенияокна можно идентифицировать по пути(от главного - к дочерним) из имен класса и Z-порядка для дочерней мелочи(aka tab-order)...
Хотя конечно - могут быть ветвления на уровне дополнительных атрибутов окна(GWL_ID, GWL_USERDATA). Также вид окна может быть изменен - в соответствии с текущим контекстом - во время создания окна(того-же класса).
А особо не ленивые - могут вообще обойтись одним классом(WndProc) с отслеживанием контекста на уровне глобального конечного автомата...
З.Ы. Проще тупо переводить всё подряд - при полном совпадении исходной фразы... А если не совпадает - значит кто-то уже перевел - как ему надо...
Dimka Maslov (2012-01-12 23:20:00) [2]Элементы меню это не контролы. И чаще всего тупо рисуются. Так же как и множество других графических элементов.
Anatoly Podgoretsky (2012-01-12 22:46:00) [3]> Wanderer (12.01.2012 22:40:06) [6]
TLabel это не окно
Омлет (2012-01-12 22:44:00) [4]Есть еще вариант с OCR.. Вроде, готовые библиотеки есть.
Wanderer (2012-01-12 22:40:00) [5]А ладно, TLabel-ы менять нельзя, сплайсинг слишком сложно, умываю руки
Омлет (2012-01-12 21:38:00) [6]http://www.google.ru/search?q=%D0%A1%D0%BF%D0%BB%D0%B0%D0%B9%D1%81%D0%B8%D0%BD%D0%B3+Delphi
Омлет (2012-01-12 21:15:00) [7]Проще, наверное, перехватывать функцию рисования текста и подменять текст.
Сергей М. (2012-01-12 20:46:00) [8]Ну что-то вроде того)
Buzirat (2012-01-12 20:40:00) [9]Тоесть такого идентификатора нет?))))))))))))))))))))))))))))))
Сергей М. (2012-01-12 20:37:00) [10]
> как их искать, если caption-ы будут меняться, есть у них
> какой нить handle который при каждом запуске будет одним
> и тем же на разных машинах?
Это еще цветочки)
Настоящая веселуха у тебя будет когда искомый контрол окажется безоконным)