|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как активировать окно, имея указатель $obj, где $obj=_IECreate() ? |
|
[решено] Как активировать окно, имея указатель $obj, где $obj=_IECreate() ?
|
Старожил Сообщения: 186 |
Профиль | Отправить PM | Цитировать Добрый день! Как активировать окно, имея указатель на него - $obj, где $obj=_IECreate() ?
#include <IE.au3> $obj=_IECreate() $obj1=_IECreate("www.google.ru") winsetstate($obj,"",@SW_Maximize); если тут написать winactivate($obj), тоже не сработает P.S. Уже не в первый раз сталкиваюсь с такой проблемой, когда скрипт создает несколько окон браузера, а потом должен активизировать их в строго определенном порядке (попутно в каждом совершая действия). |
|
Отправлено: 20:11, 20-09-2009 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать По счастью, объект «InternetExplorer.Application» уже имеет заготовленное разработчиками свойство «.HWND» (так что нам не нужно ничего придумывать с перебором окон или вызовами WinAPI), а остаётся лишь правильно использовать его:
|
Отправлено: 21:07, 20-09-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата evg64:
Теперь попробую порассуждать о том, почему всё-таки функция работала, но не с тем окном. Подозреваю, что Вы основывали свой метод приведённого решения на предыдущем опыте работы подобным же образом, однако сие не есть правильное решение. Как я уже упоминал выше, $obj есть объект «InternetExplorer.Application». Объект может иметь одно свойство/метод, используемые «по умолчанию», когда не указывается имя этого самого свойства/метода. Однако, AutoIt сие не использует, потому строковое представление (которое требуется «WinSetState()» как заголовок окна) переменной $obj == "", то есть, согласно правилам поиска окон, совпадёт с любым окном. Ну, и, поскольку перебор окон идёт, как я понимаю, в порядке Z-order, — будет найдено первое же окно, как правило — окно переднего плана. Оно и будет максимизировано (если Вы, пока ещё идёт загрузка страницы во втором экземпляре браузера, активируете окно Блокнота, то именно оно и будет максимизировано). Вот так. |
|
Отправлено: 21:41, 20-09-2009 | #3 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 22:32, 20-09-2009 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Zyxel - [решено] Как настроить два компа имея модем и свитч? Самая простая схема? | Wet | Сетевое оборудование | 15 | 02-12-2009 02:18 | |
Доступ - [решено] Как подключить (активировать) учётные записи? | SergeZap | Microsoft Windows 2000/XP | 2 | 23-06-2008 11:25 | |
как поставить дос на cd,не имея fdd | Alyaa | Хочу все знать | 3 | 23-10-2006 23:54 | |
Файл с расширением *.obj | SL | Программирование и базы данных | 4 | 10-10-2003 18:11 | |
Можно ли создать указатель на указатель? | Sharkky | Программирование и базы данных | 2 | 24-09-2003 14:35 |
|