首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WinActivate无法在自动热键脚本中工作

WinActivate无法在自动热键脚本中工作
EN

Stack Overflow用户
提问于 2015-02-25 12:59:45
回答 2查看 6.7K关注 0票数 1

下面的AutoHotKey脚本可以帮助我使用快捷方式在不同的开放应用程序之间切换:

代码语言:javascript
运行
复制
^!c::ToggleWindow("Chrome")
^!p::ToggleWindow("PowerShell")


ToggleWindow(TheWindowTitle)
{
    SetTitleMatchMode,2
    DetectHiddenWindows, Off
    IfWinActive, %TheWindowTitle%
    {
        WinMinimize, %TheWindowTitle%
    }
    Else
    {
        IfWinExist, %TheWindowTitle%
        {
            WinActivate
            ;;; Tried using WinMaximize/WinRestore here but same result
        }
        Else
        {
            DetectHiddenWindows, On
            IfWinExist, %TheWindowTitle%
            {
                WinShow
                WinActivate
            }
        }
    }
}

问题是,对于某些应用程序来说,它只是有时才起作用(例如PowerShell和TortoiseHG工作台),这真是令人沮丧。对于其他应用程序(Chrome,Thunderbird),它总是能工作。

到目前为止,我发现的情况如下:

  • 如果您显式地最小化了“问题”应用程序,那么您就永远无法使用AHK快捷方式激活/最大化窗口。我不确定是否有其他方案可以阻止快捷方式的工作,但这是复制问题的一种特定方式(至少对我来说是这样)。
  • 即使在快捷键不起作用的情况下,我也可以看到任务栏中的目标应用程序图标正在被高亮显示。我猜它的工作有点半途而废,激活了窗口,但实际上并没有显示出来。
  • 我认为问题不仅仅局限于AutoHotKey,因为我可以通过Task复制这种行为。如果我转到“应用程序”选项卡,右键单击目标应用程序并选择“带到前面”,同样的事情会发生。但是,如果我选择“切换到”代替,它是有效的!

因此,我想我的问题是“任务管理器->应用程序->切换到”做什么?我是否可以在AHK中使用等效的?我的操作系统是Win7。

EN

Stack Overflow用户

发布于 2017-09-05 19:02:24

如果您显式地最小化了“问题”应用程序,那么您就永远无法使用AHK快捷方式激活/最大化窗口。我不确定是否有其他方案可以阻止快捷方式的工作,但这是复制问题的一种特定方式(至少对我来说是这样)。

根据AutoHotkey发布说明的说法,这是一个已知的问题,已经在AutoHotkey v1.1.20中解决了。(在提出这个问题后1个月释放)

1.1.20.00 -2015年3月8日 变化

  • 更改了WinActivate以恢复窗口,如果该窗口已处于活动状态,但已最小化.
  • 更改WinActivate以寻找一个可见窗口,以便在关闭活动窗口并隐藏活动窗口时激活,而不是什么都不做
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28719672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档