我一直在浏览AutoHotKey documentation,但我没有看到如何在特定于上下文的热键中使用'或'。在我的设置中,Cygwin将使用ahk_class cygwin(当我使用上下文菜单时)或mintty(当我直接使用.bat或exe时)启动。
目前,我将热键复制到两个单独的块中,
#IfWinActive ahk_class cygwin
...
#IfWinActive
#IfWinActive ahk_class mintty
...
#IfWinActive
有没有办法将它们结合起来?我试过了:
#IfWinActive ahk_class cygwin ahk_class mintty
#IfWinActive ahk_class || cygwin ahk_class mintty
#IfWinActive ahk_class or cygwin ahk_class mintty
#IfWinActive ahk_class cygwin || #IfWinActive ahk_class mintty
#IfWinActive ahk_class cygwin or #IfWinActive ahk_class mintty
#IfWinActive (ahk_class cygwin or ahk_class mintty)
#IfWinActive (ahk_class cygwin || ahk_class mintty)
#IfWinActive ahk_class cygwin|mintty
#IfWinActive ahk_class cygwin||mintty
......这些似乎都不起作用。 This post表示这可以通过组完成,但我正在寻找一种方法将它们组合在一个语句中。
答案 0 :(得分:7)
好的,最后一个(并经过测试)。
#If WinActive("ahk_class ExploreWClass") || WinActive("ahk_class CabinetWClass")
哦b.t.w。我使用AutoHotKey_L,它支持#If!
答案 1 :(得分:6)
好的,我记得,在看到另一个例子之后:用多个ahk_class条目定义一个GroupName ....
GroupAdd, GroupName, ahk_class ExploreWClass
GroupAdd, GroupName, ahk_class CabinetWClass
#IfWinActive ahk_group GroupName
答案 2 :(得分:3)
你也可以尝试以下方法,我测试了它,它对我有用(AutoHotkey v1.1.14.01):
SetTitleMatchMode, REGEX
#IfWinActive (cygwin)|(mintty)
这使用正则表达式的内置OR机制。我出于某种原因无法让小组工作。
答案 3 :(得分:3)
我知道问题已经过时,但对于那些正在寻找解决方案的人来说
#if WinActive("ahk_class cygwin") or WinActive("ahk_class mintty")
正在运作。
答案 4 :(得分:-1)
你可以试试这个:这是我用常规IF语句做的方式。
#IfWinActive (ahk_class cygwin or ahk_class mintty)
答案 5 :(得分:-1)