【问题标题】:How do I use 'or's in AutoHotKey scripts?如何在 AutoHotKey 脚本中使用“或”?
【发布时间】:2013-02-09 05:47:44
【问题描述】:

我一直在浏览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 表示这可以通过组来完成,但我正在寻找一种将它们组合在一个语句中的方法。

【问题讨论】:

  • 复制它们有什么问题?
  • 如果我添加一个快捷方式,我必须记得添加两次。如果它不止“两次”,这可能会变得很麻烦,而且不优雅,我正在寻找解决方法。

标签: conditional autohotkey conditional-statements


【解决方案1】:

好的,最后一个(并经过测试)。

#If WinActive("ahk_class ExploreWClass") || WinActive("ahk_class CabinetWClass")

哦,顺便说一句。我使用 AutoHotKey_L,它支持 #If!

【讨论】:

    【解决方案2】:

    好吧,我记得,在看到另一个例子后:Define a GroupName with multiple ahk_class entries....

    GroupAdd, GroupName, ahk_class ExploreWClass
    GroupAdd, GroupName, ahk_class CabinetWClass
    #IfWinActive ahk_group GroupName
    

    【讨论】:

    • 是的,看来我将不得不求助于团体。在最纯粹的问题形式中,我想知道“或”是否可能(见最后一行);看起来不是。如果一天左右没有发布正确或答案,我会将其标记为答案。感谢您的帮助!
    • 我要注意,GroupAdd 语句应该在脚本的最开始,否则它将不起作用。
    【解决方案3】:

    您也可以尝试以下方法,我测试过并且对我有用(AutoHotkey v1.1.14.01):

    SetTitleMatchMode, REGEX
    
    #IfWinActive (cygwin)|(mintty)
    

    这使用了正则表达式的内置 OR 机制。由于某种原因,我无法让小组工作。

    【讨论】:

    • 我遇到了类似的问题。这似乎对我有用。谢谢。
    【解决方案4】:

    我知道这个问题已经过时了,但是对于那些正在寻找解决方案的人来说

    #if WinActive("ahk_class cygwin") or WinActive("ahk_class mintty") 
    

    正在工作。

    【讨论】:

      【解决方案5】:

      你能试试这个:这是我使用常规 IF 语句的方式。

      #IfWinActive (ahk_class cygwin or ahk_class mintty)
      

      【讨论】:

      • 这似乎也不起作用。我将它添加到上面的“尝试”列表中。
      【解决方案6】:

      我找到了一个使用这种格式的例子:

      #IfWinActive ahk_class ExploreWClass|CabinetWClass
      

      见:Best AutoHotKey macros?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-17
        相关资源
        最近更新 更多