我尝试过的事情

我尝试过的事情

如果 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 上找到的但是不起作用的帖子列表:

我尝试过的其他方法:

  • 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
  }
}

相关内容