我正在使用 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+ ^。两种组合都可以很好地启动程序或显示预先存在的窗口,但无法隐藏它,原因有两个:
- 使用时F1,甚至无法识别按键(在DbgView中没有痕迹);
- 当使用Win+ ^(或其他不使用Fn键的快捷键)时,在 DbgView 中跟踪事件,但没有任何反应。
使用其他程序(例如 Notepad++、calc、...),一切都按预期工作。知道为什么吗?我怎样才能让它工作?