我正在使用AutoHotKey显示/隐藏一个薄薄的终端窗口。这是我的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:\cygwin\bin\mintty.exe -t CygTerm")
正如您所注意到的,我创建了一个通用函数,以便能够对其他应用程序执行相同的操作。此外,我已经分配了两个键盘组合 F1 和 Win + ^ 。两种组合都可以正常启动程序或显示预先存在的窗口,但无法隐藏它,原因有两个:
使用其他程序(例如Notepad ++,calc,...),一切都按预期工作。 知道为什么吗?我怎样才能让它发挥作用?
答案 0 :(得分:1)
我发现如果我使用在开始菜单中自动创建的 Cygwin终端快捷方式,则Mintty无法正确响应AHK脚本。
但是,如果我直接在mintty.exe文件(C:\ cygwin \ bin \ mintty.exe)上创建一个快捷方式,那么它就能正常工作。
注意:为了使自定义精简快捷方式正常工作,您需要添加连字符“ - ”作为启动选项。因此,在shorcut中,Target字段应如下所示:
C:\ Cygwin \ bin \ mintty.exe -