Window Activation 작동 방식에 대한 이해는 매우 간단합니다. 해당 유형의 가장 최근에 사용 된 창을 복원합니다. 이 기본 동작은 원하는 것을 매우 간단하게 코딩합니다. 사실, 나는 두 개의 간단한 코드 블록으로 당신이 겪은 것과 거의 동일한 것을 수행합니다.
+#w::
SetTitleMatchMode, 2 ; approximate match
IfWinExist, - Microsoft Word
{
WinActivate, - Micrsoft Word
}
IfWinNotExist, - Microsoft Word
{
Run FullFilePathToMicrosoftWord
}
return
여러 모니터와 함께 사용할 수있는 흥미로운 시너지 효과를 만들었습니다. Windows 7에서 shift + windows 키를 누른 상태에서 화살표를 사용하여 왼쪽과 오른쪽으로 탐색하면 활성 창이 광 속도로 모니터간에 이동합니다. 그래서 나는 약간 영리한 것을 시도하고 단어를 shift + window + w에 매핑했습니다. 이미 열려 있으면 단어를 복원하거나 그렇지 않으면 새 인스턴스를 실행합니다. 접근 방식의 아름다움은 내가 shift + windows 키를 놓지 않았다는 것입니다. 이렇게하면 단어를 활성화 / 시작하고 왼쪽 오른쪽 화살표 키를 사용하여 원하는 위치로 정확하게 이동할 수 있습니다 (위쪽으로 최대화하고 아래쪽으로 최소화). 활성 창을 복원하기 위해 + # r을 매핑하면 마우스없이 쉽게 일반적으로 사용하는 모든 창을 완벽하게 제어 할 수 있습니다. 기억해야 할 것은 활성화하려는 앱의 첫 글자입니다.
스크립트를보다 일반적인 것으로 만드는 질문에 대한 답변 :
1) 사용을 고려하십시오
; 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
또는 다른 가능성 :
;Active the window by finding its ahk_class
WinWait, ahk_class OpusApp,
IfWinNotActive, ahk_class OpusApp, , WinActivate, ahk_class OpusApp,
WinWaitActive, ahk_class OpusApp,
참고 : 위의 코드는 오토 스크립트 작성기의 일반 출력에 맞게 조정 된 것입니다. 다소 중복되지만 효과적입니다. 창의 ahk_class와 같은 것을 찾으려면 AutoIt3 창 스파이 사용을 고려하십시오.
창의 제목을 찾아야하는 경우 ahk 예제 도움말 파일에 표시된대로 활성 제목을 얻을 수 있습니다.
WinGetActiveTitle, Title
MsgBox, The active window is "%Title%".
사용할 수있는 또 다른 트릭은 WinSetTitle을 사용하여 활성 타이틀을 설정하는 것입니다
편집 : 여러 엑셀 / 단어 / 파워 포인트가 떠있는 경우 officetabs 무료 버전으로 해당 문제를 해결하십시오. 예를 들어 작업 표시 줄에 흩어져 있지 않고 열려있는 모든 Excel 파일을 단일 인스턴스로 유지할 수 있습니다.