如果 IE 11 尚未激活,我想激活它
这是旧版测试的一部分,因此它绝对必须是 IE,而不是 Edge 或任何其他浏览器。我想将 IE 窗口置于前台,以便我可以在其上运行 F5。这是我使用的代码:
IfWinExist, ahk_exe iexplore.exe
{
If WinActive ahk_exe iexplore.exe
{
msgbox, ie already active
}
Else
{
WinActivate, ahk_exe iexplore.exe
msgbox, ie should now be active
}
}
我正在运行 IE,但已最小化或位于其他窗口下。运行上述脚本会产生一个消息框ie should now be active
,但 IE 肯定没有处于活动状态。
疯狂的是,如果我在运行脚本后按下 Ctrl+T(新选项卡),那么 ie 就会出现在最前面并打开一个新选项卡!但如果我添加Send, ^T
到脚本中,什么也不会发生。
我尝试过的事情
这是我在 Google 上找到的但是不起作用的帖子列表:
- https://autohotkey.com/board/topic/115943-ie-com-create-or-active/
- https://www.autohotkey.com/boards/viewtopic.php?t=30789
- https://www.autohotkey.com/docs/FAQ.htm
我尝试过的其他方法:
- WinMaximize - 导致我的电脑冻结约 3 分钟
- WinActivate、iFrame - 与 ahk_exe 相同
- WinActivate,ahk_class iFrame - 与 ahk_exe 相同
- WinActivate,“ahk_class iFrame”-与 ahk_exe 相同
- DetectHiddenWindows/WinShow-与 ahk_exe 相同
- ComObjActive(“InternetExplorer.Application”) - 操作不可用错误
IE 似乎不会像其他应用程序一样进入前台。我认为这是因为 IE 以某种方式注册到窗口,但有解决方法吗?
答案1
Internet Explorer 启动了多个进程,它们都是iexplore.exe
,只是参数不同。您的代码只是选择了错误的一个。
这样效果会更好,使用窗口标题将其带到前面:
SetTitleMatchMode, 2
IfWinExist, Internet Explorer
{
If WinActive ahk_exe iexplore.exe
{
msgbox, ie already active
}
Else
{
WinActivate, Internet Explorer
msgbox, ie should now be active
}
}