2013-05-12 3 views
1

일부 Windows가 열려 있다고 가정하면 AutoIt 스크립트를 시작합니다.autoit v3에서 창 포커스 이벤트를 캡처하는 방법

이제 사용자가 창을 클릭 할 때마다 포커스가 설정되고 (활성화됩니다.) 여기 코드를 실행하고 싶습니다.

그래서 기본적으로 내가 을 windowFocused 또는 이벤트의 windowActivated의 어떤 종류를 캡처 할. 그것을 할 수

  • 한 가지 방법은, WinList(), 그들을 통해 루프를 사용하여 모든 창 목록을 하나 를 사용하여 WinActive() 활성화 된 확인하는 것입니다하지만이 이후 너무 비효율적 일 수 있습니다 검사는 무한 루프에서 수행되어야합니다.

무한 루프보다 더 나은 솔루션을 원합니다.

답변

0

이것은 여전히 ​​무한 루프를 사용하고 있습니다.이 루프는 Windows를 항상 찾고 있다면 어떻게 벗어날 수 있는지 잘 모르겠습니다. 그러나 WinList()를 사용할 필요는 없습니다. 그냥 간단한 while 루프 : 스크립트가 '현재'열려있는 창에 대해 아무것도 알 수 없습니다 때문에

While 1 
    If WinActive("Notepad") Then 
     ; do something  
    ElseIf WinActive("Wordpad") Then 
     ; do something else 
    EndIf 
WEnd 
+0

WinList()는 필요하지 심지어 제목 등 – VishalDevgire

+0

@JonBecher : 귀하의 편집이 감사합니다,하지만 당신은 필요가 없습니다 '
'태그를 사용하고 텍스트를 \'\'로 묶으십시오. 4 개의 공백으로 모두 들여 쓰기를하거나 텍스트를 선택하고 코드 서식 (CTRL + K) 버튼을 사용할 수 있습니다. – Hasturkun

관련 문제