IfWinExist / IfWinNotExist / WinExist
부합하는 창이 존재하는지 점검합니다. WinExist()는 첫 번째로 부합하는 창의 Unique ID (HWND)를 돌려줍니다.
IfWinExist [, WinTitle, WinText, ExcludeTitle, ExcludeText] IfWinNotExist [, WinTitle, WinText, ExcludeTitle, ExcludeText] UniqueID := WinExist("WinTitle", "WinText", "ExcludeTitle", "ExcludeText")
매개변수
- UniqueID
주어진 기준에 부합하는 첫 번째 창의 Unique ID (HWND) (십육진 정수)
- WinTitle
목표 창을 식별하는 창 제목 또는 다른 기준. WinTitle 참조.
- WinText
존재하면, 이 매개변수는 목표 창 텍스트의 부문자열입니다 (Window Spy 유틸리티에 노출됨). 숨은 텍스트는 DetectHiddenText가 켜져 있으면(ON) 탐지됩니다.
- ExcludeTitle
제목에 이 값이 있는 창은 제외합니다. 주의: 하위 호환의 문제 때문에, IfWinExist와IfWinNotExist는 명령어의 이름에 정확하게 부합하면 이 매개변수를 명령어로 이해합니다. 이를 우회하려면, 대신에 WinExist() 함수를 사용하십시오.
- ExcludeText
텍스트에 이 값이 없는 창은 무시합니다.
논평
모든 매개변수가 생략되면, 마지막 발견 창을 점검하여 여전히 존재하는지 (IfWinNotExist이라면 존재하지 않는지) 알아 봅니다.
이 명령어 중 하나라도 부합하는 창이 있다는 것을 알게 되면, 마지막 발견 창이 그 창으로 갱신됩니다. 즉, IfWinExist가 참으로 평가되거나 IfWinNotExist가 거짓으로 평가되면, 마지막 발견 창이 갱신됩니다.
함수 WinExist()는 첫 번째로 부합하는 창의 Unique ID (HWND)를 (없으면 0) 돌려줍니다. 0-아닌 모든 숫자는 참("true")으로 간주되므로, 다음 서술문 if WinExist("WinTitle")
는WinTitle이 존재하면 참입니다.
콘트롤의 HWND를 발견하려면 (Post/SendMessage 또는 DllCall에 사용하기 위해), ControlGet Hwnd 또는 MouseGetPos를 사용하십시오.
SetWinDelay는 IfWinExist/IfWinActive에 적용되지 않습니다.
창 제목과 텍스트는 대소문자에 민감합니다. 숨은 창은 DetectHiddenWindows가 켜져 있으면 탐지됩니다.
관련 항목
IfWinActive, SetTitleMatchMode, DetectHiddenWindows, 마지막 발견 창, Process, WinActivate, WinWaitActive, WinWait, WinWaitClose, #IfWinActive/Exist
예제
; 예제 1 IfWinExist, Untitled - Notepad { WinActivate ; 위에서 발견한 창을 자동으로 사용합니다. WinMaximize ; 위와 같습니다 Send, Some text.{Enter} return } ; 예제 2 IfWinNotExist, Calculator return else { WinActivate ; 위의 "IfWinNotExist"는 또 "마지막 발견 창"을 갱신해 줍니다. WinMove, 40, 40 ; 새로운 위치로 이동합니다. return } ; 예제 3 if WinExist("ahk_class Notepad") or WinExist("ahk_class" . ClassName) WinActivate ; 마지막으로 발견된 창을 사용합니다. MsgBox % "The active window's ID is " . WinExist("A") ; 예제 4: 다음과 동등합니다: IfWinNotExist, Calculator If !WinExist("Calculator") return