2013-02-23 47 views
5

Tôi đã duyệt qua AutoHotKey documentation và tôi không thấy sử dụng rõ ràng cách sử dụng 'hoặc' trong các phím nóng theo ngữ cảnh cụ thể. Trên thiết lập của tôi, Cygwin sẽ hoặc là khởi động với ahk_class cygwin (khi tôi sử dụng menu ngữ cảnh) hoặc mintty (khi tôi sử dụng .bat hoặc exe trực tiếp).Làm cách nào để sử dụng 'hoặc trong các tập lệnh AutoHotKey?

Hiện nay, tôi lặp lại trong các phím nóng thành hai khối riêng biệt,

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

Có cách nào để kết hợp chúng? Tôi đã thử:

#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 

... và không có cách nào trong số này có hiệu quả. This post nói rằng điều này có thể được thực hiện với các nhóm, nhưng tôi đang tìm cách kết hợp chúng trong một câu lệnh duy nhất.

+0

Có vấn đề gì với việc sao chép chúng? –

+0

Nếu tôi thêm lối tắt, tôi phải nhớ thêm phím tắt hai lần. Điều này có thể trở nên rườm rà nếu nó nhiều hơn 'chỉ hai lần', và nó không phù hợp, và tôi đang tìm kiếm một cách xung quanh nó. – Ehryk

Trả lời

3

Bạn cũng có thể thử những điều sau đây, tôi thử nghiệm và nó đã làm việc cho tôi (AutoHotkey v1.1.14.01):

SetTitleMatchMode, REGEX 

#IfWinActive (cygwin)|(mintty) 

này sử dụng cơ chế tích hợp OR của biểu thức thông thường. Tôi không thể khiến các nhóm làm việc vì một lý do nào đó.

+0

Tôi gặp sự cố tương tự. Điều này dường như đã làm việc cho tôi. Cảm ơn. – Harshal

0

Bạn có thể thử điều này: Đó là cách tôi làm điều này với các câu lệnh IF thông thường.

#IfWinActive (ahk_class cygwin or ahk_class mintty) 
+0

Điều này dường như không hoạt động. Tôi đã thêm nó vào danh sách 'đã thử' ở trên. – Ehryk

+0

@Ehryk, Thật đáng để thử ... –

0

Tôi tìm thấy một ví dụ sử dụng định dạng này:

#IfWinActive ahk_class ExploreWClass|CabinetWClass 

Xem: Best AutoHotKey macros?

+0

Không may mắn về điều này, hãy thử với | và || – Ehryk

4

Được rồi, tôi nhớ, sau khi nhìn thấy một ví dụ khác: Xác định một GroupName với nhiều mục ahk_class .. ..

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

Vâng, có vẻ như tôi sẽ phải nghỉ mát theo nhóm. Ở dạng tinh khiết nhất của câu hỏi, tôi đã tự hỏi liệu 'hoặc' có khả thi hay không (xem dòng cuối cùng); có vẻ như không phải vậy. Nếu không có câu trả lời thích hợp hoặc trả lời trong một ngày hoặc lâu hơn, tôi sẽ đánh dấu câu trả lời này là câu trả lời. Cảm ơn bạn đã giúp đỡ! – Ehryk

+0

Vì vậy, những gì làm việc cho bạn? – Harshal

7

OK, lần cuối cùng (và thử nghiệm).

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

Oh b.t.w. Tôi sử dụng AutoHotKey_L, hỗ trợ #If!

+0

Đề xuất cuối cùng của tôi có giải quyết được câu hỏi của bạn không? –

1

Tôi biết câu hỏi là lỗi thời, nhưng đối với những ai đang tìm kiếm một giải pháp này

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

đang làm việc.

Các vấn đề liên quan