Что нового

Переход по ссылкам в открытом окне IE

zip-per

Новичок
Сообщения
30
Репутация
0
Добрый день форумчане!
Нашел много информации как открыть окно браузера и переходить по ссылкам. Но как перейти по ссылке в уже открытом окне ничего.
Код:
#include <IE.au3>
WinActivate("Яндекс - Microsoft Internet Explorer") ;активируем уже открытое окно браузера
_IENavigate ("www.google.ru",1) ;переходим на страницу другого поисковика


Перехода не происходит, где моя ошибка?
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Ваша ошибка в использовании функции:
_IENavigate ( ByRef $:shok:bject, $s_url [, $f_wait = 1] )
$:shok:bject - это указатель на объект IE, не окно IE, а именно объект.
А Вы, вместо указателя на объект, указываите web-адрес.
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
Так, уже более ясно становиться.
Но тогда почему при таком коде выдает ошибку? Ведь я указываю объект и потом даю ссылку
Код:
#include <IE.au3>
Sleep(1000)
WinActivate("Яндекс - Microsoft Internet Explorer")
_IENavigate ($oIE, "www.google.ru", 1)
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Нет, Вы указываите переменную $oIE.
А вот, что именно находится в этой переменно - вот в чем вопрос.

Код:
_IENavigate ($oIE, "www.google.ru", 1)

Третий параметр - еденицу, указывать необязательно, т.к. в этот параметре единица указывается по умолчанию.
Т.е. можно указать только два параметра, а третим параметром, по умолчанию будет единица.
_IENavigate ( ByRef $:shok:bject, $s_url [, $f_wait = 1] )
Это указывается, как: $f_wait = 1
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
Спасибо за разъяснения, смысл третьего параметра мне ясен.
А вот с переменной не могу разобраться :'(
Если я правильно понял, мне сперва нужно задать эту переменную?
Как это сделать не могу вкурить, сейчас клаву начну грызть...
Код:
$oIE = _IENavigate ("www.google.ru") ; не проходит

;пробовал таким макаром:
$oIE = ("Яндекс - Microsoft Internet Explorer")
_IENavigate($oIE, "www.google.ru") ; Тоже не работает
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Дело в том, что в эту переменную необходимо записать указатель на объект IE.
Т.е. этот объект необходимо либо создать, либо использовать уже существующий.

Для создания используется функция: _IECreate .
Для использования уже существующего окна IE - функция: _IEAttach

Советую изучать примеры в справке и делать так же.
Там все очень доходчиво.
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
В русской справке половина на англ. У меня с этим сложности. Пол справки уже перевел через гугл.
А вот с примерами по _IEAttach не разобрался пока. Мозгую дальше... :wacko:
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Суть в том, что в переменную $oIE необходимо записать указатель на объект IE.
Как создать или использовать уже существующий объет IE - уже писал.
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
Это мне ясно, но почему тогда вот этот код не работает?
Код:
#include <IE.au3>
WinActivate("Яндекс - Microsoft Internet Explorer")
$oIE = _IEAttach ("Яндекс - Microsoft Internet Explorer")
_IENavigate ($oIE,"www.google.ru")
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Потому что _IEAttach необходимо осуществлять по заголовку окна (WindowTitle), а не заголовку документа (Title).
Обратите внимание на 2ой параметр функции.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
zip-per
Код:
#include <IE.au3>
Opt("WinTitleMatchMode", 2)
WinActivate("Windows Internet Explorer")
$hIE = WinGetHandle("Windows Internet Explorer")
$oIE = _IEAttach ($hIE, "hwnd" )
_IENavigate ($oIE,"www.google.ru")



Мой вам совет внимательно со справкой в "руках" разберите этот пример, для дальнейшего понимания функций.

Вот ваш пример:
Код:
#include <IE.au3>
Opt("WinTitleMatchMode", 2)
WinActivate("Windows Internet Explorer")
; Тут идёт присоединение к окну по тегу <title>Яндекс</title>
; Это не заголовок Windows окна!!!
; Таким образом, можно выбирать к какой вкладке или окну подсоединится!
; К about:blank вы не сможете подсоединиться! Вопрос почему? :)
$oIE = _IEAttach ("Яндекс", "title")
_IENavigate ($oIE,"www.google.ru")
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
У меня сейчас мозг взорвется :wacko:
Ясно одно - мне надо изучить справку, хотя бы по командам которые тут присутствуют. Но есть большая проблема, справка на английском. Когда я ее перевожу, мне вообще становиться не понятно что и к чему. Вот например по вашему варианту Garrett:
Код:
#include <IE.au3>
Opt("WinTitleMatchMode", 2)

Мне ясно, что Opt - это сокращенная команда AutoItSetOption.
Перехожу в справку и ищу WinTitleMatchMode, перевожу:
Код:
WinTitleMatchMode
Кастраты метод, который используется для сопоставления заголовки окон во время поисковых операций.
1 = Матч титул с самого начала (по умолчанию)
2 = Матч любой подстроке в названии
3 = Точное соответствие названия
4 = Расширенный режим, см. заголовки окон и текста (Дополнительно)
-1 До -4 = сила нижнем регистре матч в соответствии с другими тип соответствия.

Как это понять? А как вы работаете со справкой? Может есть другой способ разбираться во всех этих бедах?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
zip-per [?]
А как вы работаете со справкой?
Я, как и любой смертный, стараюсь учить и запоминать. Мой вам совет, Google это хорошо, но есть ещё словари и т.д. Пусть перевод у вас займёт больше времени, зато в дальнейшем (поверьте) ваш мозг будет оперировать уже теми знаниями на которые вы не пожалели время!!! Это значить, что вам будет уже легче.

"Учится, учится и ещё раз учится" Это не я сказал! А кто? ;D

[box title=Мой вольный перевод]Изменяет метод, который используется, для сопоставления заголовку окон во время поисковых операций.
1 = Соответствует заголовку при старте (значение по умолчанию)
2 = Соответствие любой подстроке в заголовке
3 = Точное соответствие заголовка
4 = Усовершенствованный режим, см. Заголовки окон (Усовершенствованный) текст
1 и 4 = вызывают соответствие нижнего регистра согласно другому типу соответствия.[/box]

P.S. Кстати Google достаточно корректно переводит, просто надо научиться им пользоваться! ;)
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Стоит уточнить всю суть функции.

_IEAttach - получение указателя на объект IE из уже открытых окон IE.
Т.е. можно найти любое окно IE, получить указатель на объект IE (именно объект, а не окно), и далее работать с этим объектом с помощью функций _IE*.

Для получения указателя на объект IE сначала необходимо найти нужное окно IE.
Поиск можно осуществлять по разным параметрам:
Title = (по умолчанию) поиск по строке TITLE в HEADER из HTML страницы
WindowTitle = поиск по заголовку окна (всему заголовку, он может отличаться от TITLE страницы)
URL = поиск по URL страницы (т.е. адресу в адресной строке)
Text = поиск по тексту в BODY из HTML страницы
HTML = поиск по HTML BODY из HTML страницы
HWND = поиск по указателю (HWND) окна
Embedded = поиск по заголовку или указателю (HWND) окна
DialogBox = поиск по заголовку или указателю (HWND) модального/диалогового окна
Instance = поиск по номеру экземпляра окна IE, искомый номер указывается в 3ем параметре, строка $s_string игнорируется
 
Автор
Z

zip-per

Новичок
Сообщения
30
Репутация
0
Garrett и `p r o x y
Спасибо за ваши умные ответы на мои далеко не умные вопросы!
Вопрос решен кодом (Garrett методом научного тыка сократил код и выкинул эту страшную команду по "Кастраты метод, который.... " ;D)
Код:
#include <IE.au3>
WinActivate("Яндекс - Microsoft Internet Explorer")
$oIE = _IEAttach ("Яндекс", "title")
_IENavigate ($oIE,"www.google.ru")


"Учится, учится и ещё раз учится" Это не я сказал! А кто?
Ну конечно же это сказал Дядя Ваня. Ленин его только процетировал ;)

Код:
Garrett
У вас еще какой то вопрос был, но вы его уже затерли (что-то типа, почему эта команда не будет работать с какой-то переменной). А я так хотел на него ответить когда разберусь с данной командой!
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
zip-per
{TopicSolvedInfo}
 
Верх