| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Как идентифицировать окно? |
| Автор: sjvov 14.2.2006, 20:28 |
| Во такая вот проблема: Как однозначно определить(по каким либо параметрам) окно(это может быть само окно, кнопка, туллбар, меню и тд.). Вот например, когда прога работает однозначно можно определить по хэндлу, но вот после перезапуска хэндл меняется, есть ли какие нибудь параметры (у окон, кнопок, тулбаров и тд) которые не меняются, или как это можно реализовать по другому. Спасибо. |
| Автор: Snowy 14.2.2006, 21:17 |
| Не меняется класс окна. Часто не меняется заголовок. Хэндл меняется всегда. |
| Автор: sjvov 14.2.2006, 21:47 |
| Класс не подходит, например кинь на форму несколько updown, у них у всех класс одинаковый, размеры, и тд... только отличаются положением на форме, а если еще форма ресайзится и контролы меняют позицию. что тогда вообще ни как? |
| Автор: Romikgy 15.2.2006, 09:58 |
| sjvov, только перебором всех контролов(окон), от родительского до последнего чайлда, и выбора то что нужно |
| Автор: Snowy 15.2.2006, 10:19 |
| Присвой контролу свое уникальное имя (в параметре Name), получишь свой уникальный клас "Tсвое_уникальное_имя". |
| Автор: sjvov 16.2.2006, 20:21 |
| Спасибо, но тута не так все просто. Мне нужно запоминать не свои кнопки а чужие, а вот по каким атрибутам их запоминать я не знаю... Romikgy, вот как мне запомнить то что нужно, вот смотри, хочу я запомнить (из примера выше) updown а их несколько лежит и у всех одинаковые параметры, как их различать? что бы после следующего перезапуска я по этим параметрам мог updown идентифицировать... |
| Автор: Romikgy 17.2.2006, 10:07 |
| sjvov, имхо я бы сделал так: 1 находишь родительское окно(форму), 2 находишь дочернии окна с помощью findwindow + child точнее смотри хелп апи ф-ций , и по хенделам обращайся к нужным, почему так проканает, потому как последовательность нахождения дочерних окон будет всегда одинакова, для одно и тогоже окна т.е. нашел 1 апдаун - это первый, нашел 13 окно(с классом апдаун) - это второй контрол необходимый тебе, и так далее.... |
| Автор: sjvov 20.2.2006, 20:34 |
| Спасибо большое за помощь, буду дальше думать. |