AutoHotKey:意外的mintty行为



我正在使用AutoHotKey来显示/隐藏一个mintty终端窗口。这是我的AutoHotkey.ahk:

ShowHide_(Title, CommandLine)
{
    OutputDebug, ShowHide called
    DetectHiddenWindows, On
    ; MatchMode = 2 : The title contains the expression
    SetTitleMatchMode, 2
    OutputDebug, Looking for a window named "%Title%"
    IfWinExist %Title%
    {
        OutputDebug, "%Title%" found, is it active?
        IfWinNotActive %Title%
        {
            WinShow
            WinWait, %Title%
            WinRestore
            WinActivate
            OutputDebug, Window is not active, activating...
        }
        Else
        {
            WinMinimize
            WinHide
            OutputDebug, Window is active, hiding...
        }
    }
    Else
    {
        OutputDebug, "%Title%" doesn't exist, starting...
        Run, %CommandLine%
    }
}
#^::
F1::ShowHide_("ahk_class mintty", "C:cygwinbinmintty.exe -t CygTerm")

正如您所注意到的,我制作了一个通用函数,以便能够对其他应用程序执行同样的操作。此外,我还分配了两个键盘组合F1Win+1^

  1. 当使用F1时,按键甚至无法识别(DbgView中没有轨迹)
  2. 当使用Win+^(或其他不使用Fn

使用其他程序(如Notepad++、calc…),一切都能按预期进行。知道为什么吗?我该如何让它发挥作用?

我发现,如果我使用在开始菜单中自动创建的Cygwin Terminal快捷方式,Mintty不会正确响应AHK脚本。

但是,如果我直接创建一个指向mintty.exe文件的快捷方式(C:\cygwin\bin\manty.exe),它就会工作。

注意:为了使自定义mintty快捷方式正常工作,您需要添加连字符"-"作为启动选项。因此,在shorcut中,Target字段应该如下所示:

C: \Cygwin\bin\mintty.exe-

相关内容

  • 没有找到相关文章

最新更新