Как узнать,что чужое окно загружено и полностью прорисовано.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Как узнать,что чужое окно загружено и полностью прорисовано.

Сообщение TrueTrue » 13.03.2017 (Пн) 15:48

В частности окно FireFox.

Я стартую FireFox, функцией Shell.
Мне нужно запустить его, дождаться полной отрисовки его формы и ввести адрес в адресную строку.
Я попробовал через Sleep, ждать некоторое время, пока он полностью загрузится. Но проблема в том, что на разных компьютерах он будет грузится разное время. Как мне убедиться в то, что он полностью прогрузился и прорисован?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как узнать,что чужое окно загружено и полностью прорисов

Сообщение Хакер » 13.03.2017 (Пн) 16:14

Никак. Написать искуственный интеллект, который проверит.

Минимально проблемный путь для тебя — это, пожалуй, WaitForInputIdle, но и он не даёт никакой гарантии, что адресная строка создана и браузер готов к внешнему управлению.

Но если выработать определённую стратегию действия вместе с использованием этой функции, это может что-нибудь дать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как узнать,что чужое окно загружено и полностью прорисов

Сообщение TrueTrue » 14.03.2017 (Вт) 12:07

Спасибо Хакер! Буду пробовать.
Последний раз редактировалось TrueTrue 14.03.2017 (Вт) 14:19, всего редактировалось 1 раз.

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как узнать,что чужое окно загружено и полностью прорисов

Сообщение Teranas » 14.03.2017 (Вт) 13:40

Если есть окно, значит, есть и элементы, которые не будут реагировать до полной загрузки контента.
К примеру, как вариант, проверять ввод в адресную строку значения, и если посылаемая и читаемая строка совпали, значит, загрузка завершена.
Наверняка и в самом процессе "лисы" есть значения загрузки, можно их выудить...
Вариантов куча, но все с граблями конечно :D
PS. И вроде все браузеры принимают значения и адреса из командной строки…
С уважением, Андрей.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как узнать,что чужое окно загружено и полностью прорисов

Сообщение TrueTrue » 14.03.2017 (Вт) 13:58

Teranas писал(а):Если есть окно, значит, есть и элементы, которые не будут реагировать до полной загрузки контента.
К примеру, как вариант, проверять ввод в адресную строку значения, и если посылаемая и читаемая строка совпали, значит, загрузка завершена.
Наверняка и в самом процессе "лисы" есть значения загрузки, можно их выудить...
Вариантов куча, но все с граблями конечно :D
PS. И вроде все браузеры принимают значения и адреса из командной строки…

Да не читается Лиса, в том-то и дело. Невозможно прочитать ни адресную строку ничего. Нет у неё контролов, которые имели бы стандартные классы.

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как узнать,что чужое окно загружено и полностью прорисов

Сообщение Teranas » 14.03.2017 (Вт) 14:15

Ну, есть же названия окон, они же не меняются каждую секунду, по названию окна определить хенд и так далее
Есть фокусы окон, можно изучить структуру и реакцию дочерних окон, поведение процесса на уровне API...
Одну программку крутил, там, оказалось, возможно, определить действия через доступ к определенному файлу...
Нет не ломаемых программ вопрос только в затраченных человеко-часах...
С уважением, Андрей.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как узнать,что чужое окно загружено и полностью прорисов

Сообщение TrueTrue » 14.03.2017 (Вт) 14:21

Teranas писал(а):Ну, есть же названия окон, они же не меняются каждую секунду, по названию окна определить хенд и так далее
Есть фокусы окон, можно изучить структуру и реакцию дочерних окон, поведение процесса на уровне API...
Одну программку крутил, там, оказалось, возможно, определить действия через доступ к определенному файлу...
Нет не ломаемых программ вопрос только в затраченных человеко-часах...

Нет ничего этого у FireFox кроме кепшена главного окна.

З.Ы Дружище, ты разберись в начале и попробуй сам, а потом советуй, так увлечённо и уверенно.))

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как узнать,что чужое окно загружено и полностью прорисов

Сообщение Teranas » 14.03.2017 (Вт) 14:32

Интересный тебе FireFox попался, не использует API, не использует файловые объекты, не использует wsock32, сочувствую :mrgreen:
С уважением, Андрей.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как узнать,что чужое окно загружено и полностью прорисов

Сообщение TrueTrue » 14.03.2017 (Вт) 14:41

Teranas писал(а):Интересный тебе FireFox попался, не использует API, не использует файловые объекты, не использует wsock32, сочувствую :mrgreen:

Ну ты когда другой FF найдёшь, который использует, скажешь где скачать, я скачаю.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 29

    TopList