클라이언트용 UI 자동화 이벤트
참고 |
---|
이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오. |
이 항목에서는 Microsoft UI Automation 이벤트가 UI 자동화 클라이언트에 어떻게 사용되는지 설명합니다.
UI Automation를 사용하면 클라이언트가 원하는 이벤트를 구독할 수 있습니다. 이 기능을 통해 시스템에서 정보, 구조 또는 상태가 변경되었는지 확인하기 위해 모든 UI 요소를 지속적으로 폴링할 필요가 없으므로 성능이 향상됩니다.
또한 정의된 범위 내에서만 이벤트를 수신하기 때문에 효율도 향상됩니다. 예를 들어 클라이언트가 트리에 있는 모든 UI Automation 요소에 대한 포커스 변경 이벤트를 수신할 수도 있지만 특정 요소와 해당 하위 항목에 대한 포커스 변경 이벤트를 수신할 수도 있습니다.
참고 |
---|
모든 가능한 이벤트가 Microsoft UI Automation 공급자에 의해 발생한다고 가정하지 마십시오.예를 들어 모든 속성 변경이 Windows Forms 및 Win32 컨트롤의 표준 프록시 공급자에 의해 발생하는 것은 아닙니다. |
UI Automation 이벤트에 대한 자세한 내용은 UI 자동화 이벤트 개요를 참조하십시오.
이 항목에는 다음 단원이 포함되어 있습니다.
- 이벤트 구독
- 관련 항목
이벤트 구독
다음 메서드 중 하나를 사용하여 이벤트 처리기를 등록하는 방법으로 클라이언트 응용 프로그램이 특정 종류의 이벤트를 구독합니다.
메서드 |
이벤트 형식 |
이벤트 인수 형식 |
대리자 형식 |
---|---|---|---|
포커스 변경 |
|||
속성 변경 |
|||
구조 변경 |
|||
AutomationEvent로 식별되는 다른 모든 이벤트 |
메서드를 호출하려면 먼저 이벤트를 처리하는 대리자 메서드를 만들어야 합니다. 필요한 경우 단일 메서드에서 여러 종류의 이벤트를 처리하고 여러 호출에서 이 메서드를 표에 있는 메서드 중 하나로 전달할 수 있습니다. 예를 들어 EventId에 따라 서로 다른 여러 이벤트를 처리하도록 단일 AutomationEventHandler를 설정할 수 있습니다.
참고 |
---|
창 닫기 이벤트를 처리하려면 이벤트 처리기로 전달되는 인수 형식을 WindowClosedEventArgs로 캐스팅합니다.창의 Microsoft UI Automation 요소가 더 이상 유효하지 않기 때문에 sender 매개 변수를 사용하여 정보를 검색할 수 없습니다. 대신 GetRuntimeId를 사용하십시오. |
주의 |
---|
응용 프로그램이 자체 UI에서 이벤트를 받았을 수 있는 경우 이벤트를 구독하거나 구독 취소하는 데 응용 프로그램의 UI 스레드를 사용하지 마십시오.그렇게 하면 예측할 수 없는 동작이 발생할 수 있습니다.자세한 내용은 UI 자동화 스레딩 문제를 참조하십시오. |
종료 시나 UI Automation 이벤트가 응용 프로그램에 더 이상 필요가 없을 경우에는 UI 자동화 클라이언트에서 다음 메서드 중 하나를 호출해야 합니다.
메서드 |
설명 |
---|---|
AddAutomationEventHandler를 사용하여 등록된 이벤트 처리기를 등록 취소합니다. |
|
AddAutomationFocusChangedEventHandler를 사용하여 등록된 이벤트 처리기를 등록 취소합니다. |
|
AddAutomationPropertyChangedEventHandler를 사용하여 등록된 이벤트 처리기를 등록 취소합니다. |
|
등록된 모든 이벤트 처리기를 등록 취소합니다. |
예제 코드는 UI 자동화 이벤트 구독을 참조하십시오.