Berlangganan Peristiwa Automasi UI

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

Efisiensi juga ditingkatkan dengan kemampuan untuk mendengarkan peristiwa hanya dalam lingkup yang ditentukan. Misalnya, klien dapat mendengarkan perubahan pilihan pada item dalam daftar, pada daftar itu sendiri, atau di seluruh kotak dialog.

Catatan

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

 

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

Catatan

Sebelum menerapkan penanganan aktivitas, Anda harus terbiasa dengan masalah utas yang dijelaskan dalam Memahami Masalah Utas.

 

Topik ini berisi bagian berikut.

Mendaftarkan Penanganan Aktivitas

Aplikasi klien berlangganan peristiwa dari jenis tertentu dengan mendaftarkan penanganan aktivitas, menggunakan salah satu metode IUIAutomation berikut.

Metode Langganan Jenis Acara Antarmuka Panggilan Balik
AddFocusChangedEventHandler Perubahan fokus IUIAutomationFocusChangedEventHandler
AddPropertyChangedEventHandler, AddPropertyChangedEventHandlerNativeArray Perubahan properti IUIAutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Perubahan struktur IUIAutomationStructureChangedEventHandler
AddNotificationEventHandler Pemberitahuan IUIAutomationNotificationEventHandler
AddAutomationEventHandler Peristiwa lainnya IUIAutomationEventHandler

 

Saat klien menambahkan penanganan aktivitas untuk semua turunan (TreeScope_Descendants), UI Automation hanya menambahkan satu handler untuk akar sub-pohon, dan handler mendengarkan semua keturunan. Automasi UI tidak menambahkan penanganan aktivitas secara rekursif.

Ketika klien memanggil metode IUIAutomation::RemoveAllEventHandlers , Automation UI menghapus semua penanganan aktivitas dari proses klien.

Untuk menerima dan menangani peristiwa, Anda menerapkan objek penanganan peristiwa yang mengekspos antarmuka panggilan balik, dan Anda harus mendaftarkan objek dengan memanggil metode pendaftaran peristiwa seperti IUIAutomation::AddPropertyChangedEventHandler. Antarmuka panggilan balik memiliki satu metode; Automasi UI memanggil metode ini saat peristiwa diproses.

Saat dimatikan, atau ketika peristiwa Otomatisasi UI tidak lagi menarik bagi aplikasi, klien Automation UI harus memanggil satu atau beberapa metode IUIAutomation berikut.

Catatan

Klien Automation UI tidak boleh menggunakan beberapa utas untuk menambahkan atau menghapus penanganan aktivitas. Perilaku tak terduga dapat mengakibatkan satu penanganan aktivitas ditambahkan atau dihapus saat yang lain sedang ditambahkan atau dihapus dalam proses klien yang sama.

 

Metode Deskripsi
RemoveAutomationEventHandler Membatalkan pendaftaran penanganan aktivitas yang didaftarkan dengan menggunakan AddAutomationEventHandler.
RemoveFocusChangedEventHandler Membatalkan pendaftaran penanganan aktivitas yang didaftarkan dengan menggunakan AddFocusChangedEventHandler.
RemovePropertyChangedEventHandler Membatalkan pendaftaran penanganan aktivitas yang didaftarkan dengan menggunakan AddPropertyChangedEventHandler atau AddPropertyChangedEventHandlerNativeArray.
RemoveStructureChangedEventHandler Membatalkan pendaftaran penanganan aktivitas yang didaftarkan dengan menggunakan AddStructureChangedEventHandler.
RemoveNotificationEventHandler Membatalkan pendaftaran penanganan aktivitas yang weas terdaftar dengan menggunakan AddNotificationEventHandler.
RemoveAllEventHandlers Batalkan pendaftaran semua penanganan aktivitas yang terdaftar.

 

Dimungkinkan bagi peristiwa untuk dikirimkan ke penanganan aktivitas setelah handler dihentikan langganannya, jika peristiwa diterima bersamaan dengan permintaan untuk berhenti berlangganan acara. Praktik terbaik adalah mengikuti standar Model Objek Komponen (COM) dan menghindari penghancurkan objek penanganan aktivitas hingga jumlah referensinya mencapai nol. Menghancurkan penanganan aktivitas segera setelah berhenti berlangganan peristiwa dapat mengakibatkan pelanggaran akses jika suatu peristiwa dikirim terlambat.

Contoh

Untuk contoh kode yang menunjukkan cara menangani peristiwa Otomatisasi UI, lihat Cara Menerapkan Penanganan Aktivitas.

Konseptual

Ringkasan Aktivitas UI Automation

Memahami Masalah Utas