Я не могу говорить с 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