Как получить объект IE с Internet Explorer 9, используя autohotkey - PullRequest
0 голосов
/ 14 января 2019

Мне удалось активировать объекты IE8 на активных вкладках, используя следующий код:

IEGet(Name="") {
   IfEqual, Name,, WinGetTitle, Name, ahk_class IEFrame     ;// Get active window if no parameter
   Name := (Name="New Tab - Windows Internet Explorer")? "about:Tabs":RegExReplace(Name, " - (Windows|Microsoft)? ?Internet Explorer$")
   for wb in ComObjCreate("Shell.Application").Windows()
      if wb.LocationName=Name and InStr(wb.FullName, "iexplore.exe")
         return wb
}

но я не могу сделать то же самое в Internet Explorer 9 ... знаете, как решить эту проблему?

1 Ответ

0 голосов
/ 15 января 2019

Я не могу говорить с IE9, так как у меня IE11, но я могу вам сказать, что в IE11 новая вкладка называется «Новая вкладка - Internet Explorer». Обратите внимание на строчную букву «т» и отсутствие «Windows». Это создаст проблемы только в том случае, если вы окажетесь на новой пустой странице.

Вы уверены, что проблема заключается в этом фрагменте кода? Я подозреваю, что это может быть связано с тем, как объект используется вне этого. Может быть полезно увидеть больше вашего кода.

За исключением обнаружения новой вкладки, она работает для меня с IE11. Вот код, который я использовал для тестирования:

f1::
WinGetTitle, Name, ahk_class IEFrame
Name := (Name="New tab - Internet Explorer")? "about:Tabs":RegExReplace(Name, " - (Windows|Microsoft)? ?Internet Explorer$")
For wb in ComObjCreate("Shell.Application").Windows()
    If wb.LocationName=Name and InStr(wb.FullName, "iexplore.exe")
        MsgBox , % wb.LocationName . "`n" . wb.FullName
Return
...