2013-02-23 99 views
5

我一直在浏览AutoHotKey documentation,我没有看到如何在上下文特定的热键中使用'或'的明确用法。在我的设置中,Cygwin将使用ahk_class cygwin(当我使用上下文菜单)或mintty(当我直接使用.bat或exe时)启动。如何在AutoHotKey脚本中使用'或'?

目前,我重复热键成两个独立的模块,

#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

复制它们有什么问题? – 2013-02-23 18:43:01

+0

如果我添加一个快捷方式,我必须记得添加两次。如果它不仅仅是“两次”,这可能会很麻烦,而且不雅,我正在寻找一种解决方法。 – Ehryk 2013-02-23 20:13:36

回答

3

您也可以尝试下面,我测试,这是为我工作(AutoHotkey的v1.1.14.01):

SetTitleMatchMode, REGEX 

#IfWinActive (cygwin)|(mintty) 

它使用正则表达式的内置或机制。由于某些原因,我无法让团队工作。

+0

我有类似的问题。这似乎对我有效。谢谢。 – Harshal 2015-04-02 06:35:33

0

你可以试试这个:这是我用常规IF语句做这件事的方法。

#IfWinActive (ahk_class cygwin or ahk_class mintty) 
+0

这似乎并没有工作,要么。我将它添加到上面的“试用”列表中。 – Ehryk 2013-02-23 20:43:50

+0

@Ehryk,这是值得一试.... – 2013-02-23 20:44:42

0

我发现,使用这种格式的例子:

#IfWinActive ahk_class ExploreWClass|CabinetWClass 

参见:Best AutoHotKey macros?

+0

没有这个运气,试着用|和|| – Ehryk 2013-02-23 21:05:01

4

好吧,我记得,看到一个其他例子后:定义与多个ahk_class条目的组名.. ..

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

是的,看起来我不得不求助于团体。在最纯粹的问题中,我想知道'或'是否可能(见最后一行);它看起来不是。如果在一天左右没有发布适当的答案或答案,我会将其标记为答案。谢谢你的帮助! – Ehryk 2013-02-24 00:38:01

+0

那么对你有用? – Harshal 2015-04-02 06:19:26

7

好的,最后一个(和测试)。

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

哦b.t.w.我使用AutoHotKey_L,它支持#If!

+0

我的上一个建议是否解决了您的问题? – 2013-02-26 16:12:58

1

我知道这个问题已经过时,但对于那些谁正在寻找解决这一

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

工作。