IfWinActive / IfWinNotActive / WinActive
지정된 창이 존재하는지 그리고 현재 활성화 상태인지 점검합니다 (최전방). 그렇다면, WinActive()는 그의 Unique ID (HWND)를 돌려줍니다.
IfWinActive [, WinTitle, WinText, ExcludeTitle, ExcludeText] IfWinNotActive [, WinTitle, WinText, ExcludeTitle, ExcludeText] UniqueID := WinActive("WinTitle", "WinText", "ExcludeTitle", "ExcludeText")
매개변수
- WinTitle
창 제목 또는 목표 창을 식별하는 다른 기준 WinTitle 참조.
- WinText
존재하면, 목표 창 텍스트의 부문자열입니다 (Window Spy에 노출됨). 숨은 텍스트는 DetectHiddenText가 켜져 있어야(ON) 탐지됩니다.
- ExcludeTitle
제목에 이 값이 있는 창은 무시됩니다. 주의: 하위 호환의 문제 때문에, IfWinActive와 IfWinNotActive는 명령어의 이름에 정확하게 부합하면 매개변수를 이 명령어로 이해합니다. 이를 우회하려면, 대신에 WinActive() 함수를 사용하십시오.
- ExcludeText
텍스트에 이 값이 있는 창은 제외됩니다.
논평
모든 매개변수가 생략되면, 마지막 발견 창이 사용됩니다.
이 명령어 중 하나라도 활성창이 부합한다는 것을 알게 되면, 마지막 발견 창이 그 활성 창으로 갱신됩니다. 즉, IfWinActive가 참("true")으로 평가되거나 IfWinNotActive가 거짓("false")으로 평가되면, 마지막 발견 창이 갱신됩니다.
함수 WinActive()는 지정한 기준에 부합하는 활성 창의Unique ID (HWND)를 돌려줍니다. 없으면 0을 돌려줍니다. 0이-아닌 모든 숫자는 참("true")으로 간주되므로, 다음 서술문 if WinActive("WinTitle")
는 WinTitle이 활성화되어 있으면 참입니다.
활성 창의 유일한 ID를 열람하는 쉬운 방법은 ActiveHwnd := WinExist("A")
입니다.
SetWinDelay는 IfWinExist/IfWinActive에 적용되지 않습니다.
창 제목과 텍스트는 대소문자를 구별합니다. 숨은 창은 DetectHiddenWindows이 켜져 있어야 탐지됩니다.
관련 항목
IfWinExist, SetTitleMatchMode, DetectHiddenWindows, Last Found Window, WinActivate, WinWaitActive, WinWait, WinWaitClose, #IfWinActive/Exist
예제
IfWinActive, Untitled - Notepad { WinMaximize ; 위에서 IfWinActive가 발견한 노트패드 창을 최대화합니다. Send, Some text.{Enter} return } if WinActive("ahk_class Notepad") or WinActive("ahk_class" . ClassName) ; "ahk_class"는 뒤에 스페이스가 필요하지 않습니다. WinClose ; 마지막 발견 창을 사용합니다.