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

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

Повторюсь [D6, Win95/98]


Фантом ©   (2002-04-30 09:11:00) 

Я по поводу предыдущего вопроса: Как нажать на кнопку, если их на форме несколько, и хендл у них одинаковый...
- Song, я не знаю, может это и не хендл, но подразумевается, что при функциях типа при его указании все работает, это точно не заголовок, ну вот к примеру по моему мнению хендл такс_бара Shell_TrayWND, или я не прав? А у этих двух кнопок Button, может так я яснее изложил? Если нет объясните пожалуйста как поймать этот самый хендл у кнопки чужой программы...
Зараннее спасибо


Rush   (2002-05-01 16:27:00) [1]

ЖЕЛАТЕЛЬНОискать не по имени и классу, а по ID.

hWnd := GetWindow( hParent, GW_CHILD );

while (hWnd <> NIL) and (GetWindowLong( hWnd, GWL_ID ) <> LostID) do begin
hWnd := GetWindow( hParent, GW_NEXT );
end;

if hWnd <> NIL then DestroyWindow( hWnd ) гыгы

Другое дело если нужно найти окно другого процесса - тут желательно использовать ToolHelp API (using TlHelp32)


Фантом   (2002-04-30 09:57:00) [2]

Спасибо, мне кажется я получил, то что хотел...


Song   (2002-04-30 09:49:00) [3]

По их положению в дереве окон. Напрмер, если в приложение две кнопки, то сделая GW_CHILD для родительского, а потом GW_NEXT получите вторую кнопку. Конечно желательно искать по имени и/или классу, но как Вы правильно заметили иногда это не возможно.


Фантом   (2002-04-30 09:39:00) [4]

Извините, больше не буду обращаться лично...
Подскажите, пожалуйста следующее:
EditHandle:=GetWindow(FindWindow("#32770", nil),GW_CHILD);
Но "#32770"класс окна-родителя, другими словами, EditHandle, может принять значение любого элемента находящегося на форме, я прав? Если да, то как мне найти конкретный элемент?


Song   (2002-04-30 09:31:00) [5]

Если есть название, то через него. А если нет, то через GetWindow() - параметр GW_NEXT. Вообще, смотрите WinSight, там видны все объекты с названиями и классами.

Фантом, Вы должны знать, что личные обращения в конференцию недопускаются. Я ответил, потому что пропустил это. В следующий раз в вопросене обращайтесь лично.


Фантом   (2002-04-30 09:21:00) [6]

Song, FindWindow("класс окна",nil),но если оба класса Button, как найти хендл нужной кнопки?


Song   (2002-04-30 09:17:00) [7]

:)
Нет. То, о чём Вы говорите это называется классом. А чтобы найти handle используйте FindWindow(), GetWindow()


Наверх

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