Sự hiểu biết của tôi về cách hoạt động của Window Activation khá đơn giản. Nó khôi phục cửa sổ sử dụng gần đây nhất của loại đó. Hành vi mặc định đó làm cho mã hóa những gì bạn muốn rất đơn giản. Trong thực tế, tôi làm một cái gì đó gần giống với những gì bạn đang có với hai khối mã đơn giản.
+#w::
SetTitleMatchMode, 2 ; approximate match
IfWinExist, - Microsoft Word
{
WinActivate, - Micrsoft Word
}
IfWinNotExist, - Microsoft Word
{
Run FullFilePathToMicrosoftWord
}
return
Tôi đã tạo ra một chút sức mạnh tổng hợp thú vị để làm việc với nhiều màn hình. Lưu ý rằng trên Windows 7, giữ phím shift + phím windows và sử dụng mũi tên để điều hướng sang trái và phải sẽ di chuyển cửa sổ hoạt động giữa các màn hình ở tốc độ ánh sáng. Vì vậy, tôi đã thử một cái gì đó một chút thông minh và ánh xạ từ để shift + window + w. Nó khôi phục từ nếu đã mở hoặc chạy một thể hiện mới nếu không. Cái hay của cách tiếp cận là tôi không bao giờ buông phím shift + phím windows. Bằng cách làm như vậy tôi có thể vừa kích hoạt / bắt đầu từ và di chuyển nó đến chính xác vị trí tôi muốn bằng cách sử dụng các phím mũi tên trái phải (lên sẽ tối đa hóa theo cách và xuống sẽ giảm thiểu). Bản đồ + # r để khôi phục cửa sổ đang hoạt động và bạn hoàn toàn kiểm soát tất cả các cửa sổ mà bạn thường sử dụng dễ dàng mà không cần chuột. Tất cả những gì bạn phải nhớ là chữ cái đầu tiên của ứng dụng bạn đang cố gắng kích hoạt.
Trả lời câu hỏi của bạn về việc làm cho tập lệnh chung chung hơn:
1) Cân nhắc sử dụng
; Allows you to search for an approximate window title match
SetTitleMatchMode, 2
; For example, you could do the following to activate any existing window with
; "- Microsoft Word" as part of the title
WinWait, - Microsoft Word,
IfWinNotActive, - Microsoft Word, , WinActivate, - Microsoft Word,
WinWaitActive, - Microsoft Word,
; some other code here once you have the window active
Hoặc một khả năng khác:
;Active the window by finding its ahk_class
WinWait, ahk_class OpusApp,
IfWinNotActive, ahk_class OpusApp, , WinActivate, ahk_class OpusApp,
WinWaitActive, ahk_class OpusApp,
Lưu ý: Đoạn mã trên chỉ là sự điều chỉnh của đầu ra chung của trình ghi tự động. Nó có phần dư thừa nhưng hiệu quả. Để tìm thứ gì đó như ahk_group của cửa sổ, hãy xem xét sử dụng gián điệp cửa sổ AutoIt3.
Nếu bạn cần khám phá tiêu đề của một cửa sổ, bạn có thể nhận được tiêu đề hoạt động như trong tệp trợ giúp ví dụ ahk
WinGetActiveTitle, Title
MsgBox, The active window is "%Title%".
Một mẹo khác bạn có thể sử dụng là đặt tiêu đề hoạt động bằng WinSetTitle
Chỉnh sửa: Cho rằng bạn có nhiều phiên bản excel / word / powerpoint nổi xung quanh, cũng xem xét giải quyết vấn đề đó với phiên bản miễn phí của docetabs. Nó sẽ cho phép bạn giữ tất cả các tệp excel đang mở trong một ví dụ duy nhất thay vì rải rác về thanh tác vụ.