Форум: "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