Что нового

IE метод $oIE.navigate(url,'','_blank') выводит из режима SW_HIDE есть решение?

Сообщения
35
Репутация
-1
вот пример кода
1) вариант
Код:
$oIE = _IECreate('about:Tabs',1,0,1)
ObjName($oIE) = "IWebBrowser2"
$oIE.visible = False
$oIE.navigate('http://yandex.ru',"",'_blank')

; итог такой навигации
$oIE.visible = True

2) вариант
Код:
$oIE = _IECreate('about:Tabs',1,0,1)
ObjName($oIE) = "IWebBrowser2"
$oIE.visible = False
$oIE.navigate('http://yandex.ru') 
;новая вкладка не создается естественно 
; итог такой навигации (все как надо)
$oIE.visible = False

интересует есть ли возможность указать браузеру (окну) , оставаться в режиме $oIE.visible = False при любом варианте навигации ?

Я понимаю что перед тем как загрузить документ в новую вкладку он создает ее и ставит свойство $oIE.visible = True
если такого способа нет то подскажите как создать новую вкладку уже в существующем окне (без косяков) желательно с привязкой по дескриптору ,
или если новая вкладка создается с помощью указателя на объект
ну на пример вот так

Код:
$oIE = _IECreate('about:Tabs',1,0,1)
1) ObjCreate($oIE,"Тип объекта""Новая вкладка")
или
2)ObjCreate($oIE.hwnd,"Тип объекта""Новая вкладка")

;неподходящий вариант указатель на объект по имени
3) ObjCreate("IWebBrowser2","Тип объекта""Новая вкладка")
объектов "IWebBrowser2" может быть несколько все параметры у них одинаковы нормально отличить их можно по дескриптору


1) объект "IWebBrowser2"

$oIE.hwnd = 0x0000000000050432

Имя объекта = IWebBrowser2
Строка описания объекта = Web Browser Interface for IE4.
Shell.Explorer.1
Файл связанный с объектом в реестре = C:\Windows\System32\ieframe.dll
Имя модуля = C:\Windows\system32\OLEAUT32.dll
CLSID класса coclass объекта = {EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B}
IID идентификатор интерфейса объекта = {D30C1661-CDAF-11D0-8A3E-00C04FC9E26E}

2) объект "IWebBrowser2"

$oIE.hwnd = 0x0000000000067290

Имя объекта = IWebBrowser2
Строка описания объекта = Web Browser Interface for IE4.
Shell.Explorer.1
Файл связанный с объектом в реестре = C:\Windows\System32\ieframe.dll
Имя модуля = C:\Windows\system32\OLEAUT32.dll
CLSID класса coclass объекта = {EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B}
IID идентификатор интерфейса объекта = {D30C1661-CDAF-11D0-8A3E-00C04FC9E26E}
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Посмотрите метод navigate2 https://msdn.microsoft.com/ru-ru/library/aa752094%28v=vs.85%29.aspx и параметр Flags https://msdn.microsoft.com/ru-ru/library/aa768360%28v=vs.85%29.aspx


Добавлено:
Сообщение автоматически объединено:

Вот константы
Код:
enum BrowserNavConstants
    {	navOpenInNewWindow	= 0x1,
	navNoHistory	= 0x2,
	navNoReadFromCache	= 0x4,
	navNoWriteToCache	= 0x8,
	navAllowAutosearch	= 0x10,
	navBrowserBar	= 0x20,
	navHyperlink	= 0x40,
	navEnforceRestricted	= 0x80,
	navNewWindowsManaged	= 0x100,
	navUntrustedForDownload	= 0x200,
	navTrustedForActiveX	= 0x400,
	navOpenInNewTab	= 0x800,
	navOpenInBackgroundTab	= 0x1000,
	navKeepWordWheelText	= 0x2000,
	navVirtualTab	= 0x4000,
	navBlockRedirectsXDomain	= 0x8000,
	navOpenNewForegroundTab	= 0x10000
    } 	BrowserNavConstants;


Добавлено:
Сообщение автоматически объединено:

Вам кажется подойдет navOpenInNewTab или navOpenInBackgroundTab или navOpenNewForegroundTab
 
Автор
G
Сообщения
35
Репутация
-1
inververs спасибо
флаг :navOpenInBackgroundTab = 0x1000
флаг :navOpenNewForegroundTab = 0x10000

оставил окно в скрытом режиме и навигация сработала как надо

добавлю может пригодится кому

флаг :navOpenInBackgroundTab = 0x1000 не активирует новую вкладку $oIE.visible = False
флаг :navOpenNewForegroundTab = 0x10000 активирует новую вкладку $oIE.visible = False
 
Верх