2013-02-23 51 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") 

工作。