Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2010, 14:04   #1
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию HWnd и TWebBrowser

Появилась такая необходимость:
На форме валяется WebBrowser.
Кнопка вызывает адрес vkontakte.ru/appXXXXXX
Необходимо после полной загрузки данного адреса определить хендл флеш игры.

Раньше я определял этим способом:
Код:
var
PT:TPOINT;
BrowserH:HWND;
begin
PT.x:=400;
PT.Y:=400;
Pt := ClientToScreen(Pt);
BrowserH:=windows.WindowFromPoint(PT);
end;
Щас нужно что - то другое... Этот метод не срабатывает, если форма перекрыта другими окнами... А приложение должно работать именно в фоновом режиме.
stlcrash вне форума Ответить с цитированием
Старый 12.12.2010, 14:39   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

может просто поискать дочерние окна?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.12.2010, 14:43   #3
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

Я не знаю как это сделать... Разве флеш файлы являются дочерними окнами?
stlcrash вне форума Ответить с цитированием
Старый 12.12.2010, 14:50   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

нет блин, глобальное окно не привязанное ни к кому
оно ведь дочернее к WebBrowser.

просто раз вы получали хендл, значит можно, посмотрите класс окна и далее с помощью FindWindowEx найдите его, указав родителем хендл WebBrowser.
Цитата:
Разве флеш файлы являются дочерними окнами?
файлы вообще окнами не являются, а вот флэш плеер который открывает флэш файл, уже вполне является.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.12.2010, 15:04   #5
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

Код:
FindWindowEx(webbrowser1.Handle,);
А вот что писать дальше... Подскажите пожалуйста
stlcrash вне форума Ответить с цитированием
Старый 12.12.2010, 15:11   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

второй параметр будет ноль.
про третий я сказал, посмотрите какой класс окна у флэша.
а четвертый nil
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.12.2010, 15:19   #7
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

Ок, щай найду класс флешки и попробуй.
Код:
BrowserH:=FindWindowEx(webbrowser1.Handle,0,'MacromediaFlashPlayerActiveX',nil);
Икомая строка
Ещё раз спасибо за помощь.

Последний раз редактировалось stlcrash; 12.12.2010 в 15:28.
stlcrash вне форума Ответить с цитированием
Старый 12.12.2010, 15:39   #8
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

однако:
Код:
BrowserH:=FindWindowEx(webbrowser1.Handle,0,'MacromediaFlashPlayerActiveX',nil);
Showmessage(IntToStr(BrowserH));
Получаю всегда '0'....
stlcrash вне форума Ответить с цитированием
Старый 12.12.2010, 15:42   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Spy++, WinSight, или тп есть?

проверьте иерархию окон.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.12.2010, 15:44   #10
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

Цитата:
Spy++, WinSight, или тп есть?
Я даже не знаю что это такое... Есть скайп

Неужели никто не знает другого способа получения HWND окна флешплеера, кроме как способом в первом сообщении?
Мне только это осталось для перевода программы в фоновый режим..

Последний раз редактировалось Stilet; 12.12.2010 в 20:33.
stlcrash вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести hwnd? GrindeX C++ Builder 2 25.11.2010 01:33
Отличия HWND и THandle Alex Cones Общие вопросы Delphi 5 06.09.2010 15:13
Узнать HWND компонента другого приложения Revenant Mar Sara Общие вопросы Delphi 1 16.07.2010 02:50
Incompatible types: 'Unit1.TWebBrowser' and 'SHDocVw.TWebBrowser' simon15x Общие вопросы Delphi 0 10.04.2010 03:11
Узнать HWND окна Ilshat89 Общие вопросы C/C++ 3 01.09.2009 22:30