2013-02-23 21 views
5

Przeglądam plik AutoHotKey documentation i nie widzę wyraźnego sposobu użycia klawisza skrótu "lub" w kontekście. W moim setupie Cygwin uruchomi się z ahk_class cygwin (kiedy używam menu kontekstowego) lub menty (kiedy użyję bezpośrednio .bat lub exe).Jak korzystać ze skryptów AutoHotKey?

Obecnie mam powielać skrótu na dwa oddzielne bloki,

#IfWinActive ahk_class cygwin 
... 
#IfWinActive 
#IfWinActive ahk_class mintty 
... 
#IfWinActive 

Czy jest jakiś sposób, aby je połączyć? Próbowałem:

#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 

... i żaden z nich nie działa. This post stwierdza, że ​​można to osiągnąć za pomocą grup, ale szukam sposobu na połączenie ich w jedną instrukcję.

+0

Co jest nie tak z ich powielaniem? –

+0

Jeśli dodaję skrót, muszę pamiętać, aby dodać go dwa razy. Może to być uciążliwe, jeśli jest więcej niż "tylko dwa razy", a jest nieeleganckie i szukam sposobu obejścia tego. – Ehryk

Odpowiedz

3

Można również spróbować następujących, Przetestowałem i pracował dla mnie (AutoHotkey v1.1.14.01):

SetTitleMatchMode, REGEX 

#IfWinActive (cygwin)|(mintty) 

ten wykorzystuje wbudowane lub mechanizm wyrażeń regularnych. Z jakiegoś powodu nie mogłem zatrudnić grup.

+0

Miałem podobny problem. Wydaje się, że zadziałało to dla mnie. Dzięki. – Harshal

0

Czy możesz spróbować: Tak postępuję w przypadku regularnych instrukcji IF.

#IfWinActive (ahk_class cygwin or ahk_class mintty) 
+0

To też nie działa. Dodałem go do powyższej "wypróbowanej" listy. – Ehryk

+0

@Ehryk, Cóż, warto było spróbować ... –

0

znalazłem przykład, który używa tego formatu:

#IfWinActive ahk_class ExploreWClass|CabinetWClass 

Patrz: Best AutoHotKey macros?

+0

Nie było na tym szczęścia, próbowałem z | i || – Ehryk

4

Dobrze pamiętam, po obejrzeniu inny przykład: zdefiniować GroupName z wieloma wpisami ahk_class .. ..

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

Tak, wygląda na to, że będę musiał uciec się do grup. W najczystszej formie pytanie zastanawiałem się, czy "lub" było możliwe (patrz ostatnia linia); wygląda na to, że tak nie jest. Jeśli nie ma właściwej odpowiedzi lub odpowiedzi w ciągu jednego dnia, zaznaczę to jako odpowiedź. Dzięki za pomoc! – Ehryk

+0

Więc co zadziałało dla ciebie? – Harshal

7

OK, ostatni (i przetestowany).

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

Oh b.t.w. Używam AutoHotKey_L, który obsługuje # If!

+0

Czy moja ostatnia sugestia rozwiązała Twoje pytanie? –

1

Wiem, że pytanie jest przestarzały, ale dla tych, którzy szukają rozwiązania do tej

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

działa.