1 (изменено: g0ss, 2019-04-23 10:03:29)

Тема: AHK: COM IE открыть ссылку в новой вкладке

Здравствуйте. Подскажите, как сделать, что бы ссылка открывалась в новой вкладке как новый объект, т.е. мне нужно, что бы скрипт мог выполнять действия на новой вкладке. Сейчас есть такой скрипт (открывает в новом окне):


pwb := ComObjCreate("InternetExplorer.Application")
pwb.Visible := True

pwb.Navigate(navSite)
While	pwb.readyState != 4 || pwb.document.readyState != "complete" || pwb.busy
	Sleep 1000

loop,
{
navLink := pwb.document.getElementsByTagName("a")[CycleV].href

newtab := ComObjCreate("InternetExplorer.Application")
newtab.Visible := true
newtab.Navigate(navLink)
}

Нашел функцию, которая открывает ссылку в новой вкладке, но при попытке назначить любые действия newtab появляется ошибка: 0x800706BA Сервер rpc недоступен, либо неизвестную ошибку.

pwb.Navigate(navLink, 4096)
		while !newtab
			newtab := New_IE(ProjectLink)

New_IE(Url) {
	For pwb in ComObjCreate("Shell.Application").Windows
	{
		If instr( pwb.LocationUrl, URL) && InStr( pwb.FullName, "iexplore.exe" )
			return pwb
		else
			continue
	}
}

Спасибо!

2 (изменено: inseption86, 2019-04-23 13:58:01)

Re: AHK: COM IE открыть ссылку в новой вкладке

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
#SingleInstance force 

ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true
ie.Navigate("https://yandex.ru")

While	ie.readyState != 4 || ie.document.readyState != "complete" || ie.busy
	Sleep 500

ie := WBFromUrl("https://yandex.ru/")

link := ie.document.getElementById("wd-_weather").getElementsByTagName("a")[0].getAttribute("href")


ie.Navigate(link ,2048)
While	ie.readyState != 4 || ie.document.readyState != "complete" || ie.busy
	Sleep 500


ie2 := WBFromUrl(link)

MsgBox % ie2.document.getElementsByTagName("H1")[0].innerText "___"  link

  
Process, close, iexplore.exe
ExitApp
 
 
 
 
 WBFromUrl(url)  {
   shell := ComObjCreate("Shell.Application")
   loop  {
      for window in shell.Windows  {
         if (window.LocationUrl = url)
            break 2
      }
      Sleep 10
   }
   Return window
}

3

Re: AHK: COM IE открыть ссылку в новой вкладке

inseption86
Спасибо!

4 (изменено: svoboden, 2019-04-24 03:12:54)

Re: AHK: COM IE открыть ссылку в новой вкладке

А я чего-то все через Imacros автоматизирую IE, там js скрипты проще запускать на страницах, да и с вкладками проще все.