Peristiwa UI Automation untuk Klien

Catatan

Dokumentasi ini ditujukan untuk pengembang .NET Framework yang ingin menggunakan kelas UI Automation terkelola yang ditentukan pada namespace System.Windows.Automation. Untuk informasi terbaru tentang UI Automation, lihat API Automasi Windows: Automasi Antarmuka Pengguna.

Topik ini menjelaskan bagaimana peristiwa Microsoft UI Automation digunakan oleh klien UI Automation.

UI Automation memungkinkan klien berlangganan peristiwa yang menarik. Kemampuan ini meningkatkan kinerja dengan meniadakan kebutuhan untuk terus melakukan polling semua elemen UI dalam sistem untuk melihat apakah ada informasi, struktur, atau status yang berubah.

Efisiensi juga ditingkatkan dengan kemampuan untuk mendengarkan peristiwa hanya dalam lingkup yang ditentukan. Misalnya, klien dapat mendengarkan peristiwa perubahan fokus pada semua elemen UI Automation di hierarki, atau hanya pada satu elemen dan keturunannya.

Catatan

Jangan berasumsi bahwa semua kemungkinan kejadian dimunculkan oleh penyedia Microsoft UI Automation. Misalnya, tidak semua perubahan properti menyebabkan peristiwa dimunculkan oleh penyedia proksi standar untuk Formulir Windows dan kontrol Win32.

Untuk tampilan yang lebih luas tentang peristiwa UI Automation, lihat Ringkasan Peristiwa UI Automation .

Berlangganan Peristiwa

Aplikasi klien berlangganan peristiwa jenis tertentu dengan mendaftarkan pengendali peristiwa, menggunakan salah satu metode berikut.

Metode Jenis Acara Jenis Argumen Peristiwa Jenis Delegasi
AddAutomationFocusChangedEventHandler Perubahan fokus AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Perubahan properti AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Perubahan struktur StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Semua peristiwa lainnya, diidentifikasi oleh AutomationEvent AutomationEventArgs atau WindowClosedEventArgs AutomationEventHandler

Sebelum memanggil metode, Anda harus membuat metode delegasi untuk menangani peristiwa. Jika mau, Anda dapat menangani berbagai jenis peristiwa dalam satu metode, dan meneruskan metode ini dalam beberapa panggilan ke salah satu metode dalam tabel. Misalnya, satu AutomationEventHandler dapat disiapkan untuk menangani berbagai peristiwa secara berbeda sesuai dengan EventId.

Catatan

Untuk memproses peristiwa yang tertutup jendela, berikan jenis argumen yang diteruskan ke penanganan aktivitas sebagai WindowClosedEventArgs. Karena elemen Microsoft UI Automation untuk jendela tidak lagi valid, Anda tidak dapat menggunakan parameter sender untuk mengambil informasi; gunakan GetRuntimeId sebagai gantinya.

Perhatian

Jika aplikasi Anda mungkin menerima peristiwa dari UI-nya sendiri, jangan gunakan utas UI aplikasi Anda untuk berlangganan peristiwa, atau berhenti berlangganan. Melakukannya dapat menyebabkan perilaku yang tidak terduga. Untuk mendapatkan informasi selengkapnya, lihat Masalah Threading UI Automation.

Saat dimatikan, atau saat peristiwa UI Automation tidak lagi menarik bagi aplikasi, klien UI Automation harus memanggil salah satu metode berikut.

Metode Deskripsi
RemoveAutomationEventHandler Membatalkan pendaftaran penanganan aktivitas yang didaftarkan menggunakan AddAutomationEventHandler.
RemoveAutomationFocusChangedEventHandler Membatalkan pendaftaran penanganan aktivitas yang didaftarkan menggunakan AddAutomationFocusChangedEventHandler.
RemoveAutomationPropertyChangedEventHandler Membatalkan pendaftaran penanganan aktivitas yang didaftarkan menggunakan AddAutomationPropertyChangedEventHandler.
RemoveAllEventHandlers Batalkan pendaftaran semua penanganan aktivitas yang terdaftar.

Misalnya kode, lihat Berlangganan Peristiwa UI Automation.

Lihat juga