我能够使用以下代码在活动选项卡中激活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上执行相同的操作...您知道如何解决此问题吗?
答案 0 :(得分:1)
我无法像IE11一样使用IE9,但是我可以告诉您,在IE11中,新标签页标题为“新标签页-Internet Explorer”。注意小写的“ t”和缺少“ 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