Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.01;
Скачать: CL | DM;

Вниз

Повторюсь   Найти похожие ветки 

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

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


 
Song ©   (2002-04-30 09:17) [1]

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


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

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


 
Song ©   (2002-04-30 09:31) [3]

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

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


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

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


 
Song ©   (2002-04-30 09:49) [5]

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


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

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


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

ЖЕЛАТЕЛЬНО искать не по имени и классу, а по 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)



Страницы: 1 вся ветка

Текущий архив: 2002.07.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-984
QWest
2002-06-18 09:46
2002.07.01
Помогите!


3-880
skiph
2002-05-31 05:15
2002.07.01
Blob в QuickReport


3-885
Duke2
2002-06-06 21:18
2002.07.01
Вопрос о разрушении BLOB в DBF и Paradox


1-1056
Alexander_D6_XP
2002-06-18 16:49
2002.07.01
Регистрация созданной формы


3-875
Ulugbek
2002-06-06 16:26
2002.07.01
Мастера опять проблема!