Что нового

Возможно ли переключения между копиями IE

nadkol

Новичок
Сообщения
5
Репутация
0
Возможно не так озаглавил, вобщем суть (либо чегото недопонимаю):

Есть: открыты 2а окна IE, в каждом из которых залогинены на одном сайте, но в разные подразделы. Суть: привязать вновь открывающееся окно либо к 1у окну либо ко 2у. Как я понял привязатся надо к копии инстанса IE, но почемуто не работает.... из хелпа autoit пример _IEAttach про колво копий эксплорера показывает что копий 2е, НО, как бы я не пытался между ними переключиться, всегда привязка к 1й странице(. Собственно возможно ли это?

Грубый пример:

Код:
$K = _IECreate($ID, 1, $AA, 1, -1) ;instance=1
$L = _IECreate($ID, 1, $AA, 1, -1)  ;instance=2
V$ = _IEAttach ( "", "instance", 2)
M$ = _IECreate($ID & "чегототам", 1, $AA, 1, -1)


Где $AA Меняю хоть на 0 хоть на 1(.

Считает что я авторизован на 1й странице всегда(, причем ручками (при вставлении ссылок в вновь открытое окно все работает)(((

Зараннее спасибо за конструктивные ответы.
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
nadkol [?]
Суть: привязать вновь открывающееся окно либо к 1у окну либо ко 2у.
Отсюда поподробнее, пожалуйста! :smile:
Что значить привязать к окну? Вы же (как я понимаю) открываете третье окно, зачем и каким образом его привязывать?!
Если вы хотите открыть новую страницу в одном из двух уже открытых окон, так это делается так:
Код:
#include <IE.au3>
$oIE1 = _IECreate("http://www.google.com")
$oIE2 = _IECreate("http://www.yandex.ru")
_IENavigate($oIE1, "http://www.autoitscript.com")
_IENavigate($oIE2, "http://www.autoit-script.ru")
 
Автор
N

nadkol

Новичок
Сообщения
5
Репутация
0
Garrett

Вы видимо не дочитали((, сайт один и тотже, и по Вашему примеру, открывается опятьже в 1м окне(((.

Пример (мой) действительно грубый, считается что эти окна открыты(созданы раньше) и залогинены.
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
nadkol [?]
Вы видимо не дочитали((
Перечитывал от корки до корки! ;D
Но, к сожалению, трудно понять, что вам нужно!
Значит так!
Вы зашли на сайт:
Код:
_IECreate()

Авторизировались!
ВНИМАНИЕ!!! Если вам браузер поставил сookies, то при самом плохом раскладе когда сookies умирает при закрытии браузера, вы можете открывать дополнительные окна и повторно не авторизироваться.
Теперь открываем второе окно и вводим в адресную строку адрес раздела N сайта который загружен в первом окне! Так?
После чего мы хотим загрузить в первое окно следующий раздел N этого же сайта введя адрес раздела в адресную строку! Я правильно понял?

ВОПРОС!!! Вы хотите заменить документ в первом окне, или предварительно открыв вкладку в первом окне загрузить туда страницу?


P.S. В любом браузере можно загружать страницы только в окно!!! Но! Есть такая функция на сегодняшний день в любом браузере, при активации, которой, окна группируются в одно общее родительское окно и называются вкладками! Однако они (вкладки) всё же имеют свои hendle! Сегодня только IE8 имеет для каждой вкладки свой instance
 
Автор
N

nadkol

Новичок
Сообщения
5
Репутация
0
То что я не могу обьяснить,это я уже понял))). Подойду с другой стороны).

Код:
$List = WinList("[CLASS:IEFrame;REGEXPTITLE:.*?(Microsoft Internet Explorer|).*?]")					;поиск всех окон ie
				 For $i = 1 To $List[0][0]
                  If BitAND(WinGetState($List[$i][1]), 2) Then
                     ConsoleWrite('Handle: ' & $List[$i][1] & '   ' & 'Title: ' & $List[$i][0] & @CR)
				  EndIf
			  Next
;предполагаем что их всего 2а открыто и в обоих авторизованы
WinActivate($List[2][1], "") ; активируем 2е окно)
$T = _IECreate("траляля", 0, 1, 1, -1) ;в теории я открываю новое окно с текущего активного, но почемуто прилогинен оказуюсь к первому, и соответсвенно мне пишет нет прав((


Возможно опять не так обьясняю(((.
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
nadkol
Это вам для более наглядного понимания вашей проблемы!
Код:
#include <IE.au3>
Opt("WinTitleMatchMode", 2)
$oIE1 = _IECreate("http://www.ya.ru")
$oIE2 = _IECreate("http://www.google.com")
ConsoleWrite('Handle: ' & _IEPropertyGet($oIE1, "hwnd") & ' - ' & 'LocalName: ' &  _IEPropertyGet($oIE1, "locationname") & @LF)
ConsoleWrite('Handle: ' & _IEPropertyGet($oIE2, "hwnd") & ' - ' & 'LocalName: ' &  _IEPropertyGet($oIE2, "locationname") & @LF)

$List = WinList("Windows Internet Explorer")
For $i = 1 To $List[0][0]
     ConsoleWrite('Handle: ' & $List[$i][1] & ' - ' & 'Title: ' & $List[$i][0] & @CR)
Next


А так будет проще! :smile:
Код:
#include <IE.au3>
$oIE1 = _IECreate("http://www.google.com")
$oIE2 = _IECreate("http://www.ya.ru")
WinActivate(_IEPropertyGet($oIE2, "hwnd"))
$oIE3 = _IECreate("http://www.mail.ru", 0, 1, 1, 1)

В заключение, ну хоть убейте меня, я так и не понял, что вы хотите этим скриптом сделать ;D
Вы по любому запускаете новое окно, какая вам разница какое из предыдущих окон будет активно?
 
Автор
N

nadkol

Новичок
Сообщения
5
Репутация
0
Непишется Вам в личку почемуто(.
Все верно новое окно.... я хочу чтоб новое окно отрывалось авторизованым!!!, а вот это то и не выходит, точнее авторизовано оно всегда от первой самой авторизации (привязано),малотого, как между авторизациями переключатся.

Склоняюсь к мысли что это в принципе невозможно(
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
nadkol [?]
точнее авторизовано оно всегда от первой самой авторизации (привязано),малотого, как между авторизациями переключатся
Смутно, но что-то, по-моему, начинает прорисовываться :smile:
То есть вы авторизировались на одном сайте под двумя учётными записями, и потом хотите перемещаться по сайту то под одним пользователем, то под другим. Так?
Или я опять не уловил вашей мысли?
 
Автор
N

nadkol

Новичок
Сообщения
5
Репутация
0
То есть вы авторизировались на одном сайте под двумя учётными записями, и потом хотите перемещаться по сайту то под одним пользователем, то под другим. Так?
Именно это и хочу :beer:
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
nadkol [?]
Именно это и хочу
Это хорошо! ;D
Но! есть такое понятие как cookies!
Вам нужно о них "позаботится", и при отправке запроса на сервер, в зависимости от учётной записи, подменять их.
 
Верх