Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Постоянный идентификатор окна (контрола)


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 который при каждом запуске будет одним
> и тем же на разных машинах?


Это еще цветочки)

Настоящая веселуха у тебя будет когда искомый контрол окажется безоконным)


Наверх

Титульная страница Поиск, карта сайта Написать письмо