Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
Фантом   (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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
3-893
maxim2
2002-06-07 13:30
2002.07.01
Опять про Mdi формы, теперь проблема с открытием


4-1253
V_V
2002-05-03 02:18
2002.07.01
menu


1-1067
Rival
2002-06-18 23:59
2002.07.01
Помогите плз...


14-1198
VID
2002-05-31 19:16
2002.07.01
Частоты...


14-1145
Kevin
2002-05-28 14:38
2002.07.01
все на z17.net





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский