Bagikan melalui


Implementasi penyedia UI Automation sisi server

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.

Beberapa kerangka kerja antarmuka pengguna (UI) yang berbeda digunakan dalam sistem operasi Microsoft, termasuk Win32, Formulir Windows, dan Windows Presentation Foundation (WPF). Microsoft UI Automation mengekspos informasi tentang elemen UI ke klien. Namun, UI Automation tidak memiliki pengetahuan sendiri tentang jenis-jenis kontrol berbeda yang terdapat dalam kerangka kerja ini dan teknik yang diperlukan untuk mengekstraksi informasi darinya. Sebaliknya, UI Automation meninggalkan tugas ini ke objek yang disebut penyedia. Penyedia mengekstraksi informasi dari kontrol tertentu dan memberikan informasi tersebut ke UI Automation,yang kemudian menyajikannya ke klien secara konsisten.

Penyedia dapat berada baik di sisi server maupun di sisi klien. Penyedia sisi server diimplementasikan oleh kontrol itu sendiri. Elemen WPF mengimplementasi penyedia, seperti halnya kontrol pihak ketiga yang kemudian ditulis dengan UI Automation.

Namun, kontrol lama seperti yang ada di Win32 dan Formulir Windows tidak secara langsung mendukung UI Automation. Sebagai gantinya, kontrol ini disajikan oleh penyedia yang ada dalam proses klien dan memperoleh informasi tentang kontrol menggunakan komunikasi lintas proses; misalnya, dengan memantau pesan Windows ke dan dari kontrol. Penyedia sisi klien tersebut terkadang disebut proksi.

Windows Vista menyediakan penyedia untuk kontrol Win32 dan Formulir Windows standar. Selain itu, penyedia fallback memberikan dukungan UI Automation parsial ke kontrol apa pun yang tidak disediakan oleh penyedia atau proksi sisi server lain, tetapi mengimplementasikan Microsoft Active Accessibility. Semua penyedia ini secara otomatis dimuat dan tersedia untuk aplikasi klien.

Untuk informasi selengkapnya tentang dukungan untuk kontrol Win32 dan Formulir Windows, lihat Dukungan UI Automation untuk Kontrol Standar.

Aplikasi juga dapat mendaftarkan penyedia sisi klien lainnya.

Mendistribusikan Penyedia Sisi Klien

UI Automation akan menemukan penyedia sisi klien dalam rakitan kode terkelola. Namespace dalam rakitan ini harus memiliki nama yang sama dengan rakitan tersebut. Misalnya, rakitan yang disebut ContosoProxies.dll akan berisi namespace ContosoProxies. Di dalam namespace, buat kelas UIAutomationClientSideProviders. Dalam implementasi bidang ClientSideProviderDescriptionTable statis, buat array struktur ClientSideProviderDescription yang menjelaskan penyedia.

Mendaftarkan dan Mengonfigurasi Penyedia Sisi Klien

Penyedia sisi klien di perpustakaan taut-dinamis (DLL) dimuat dengan memanggil RegisterClientSideProviderAssembly. Tidak ada tindakan lebih lanjut yang perlu dilakukan oleh aplikasi klien untuk memanfaatkan penyedia.

Penyedia yang diimplementasikan dalam kode klien sendiri didaftarkan dengan menggunakan RegisterClientSideProviders. Metode ini digunakan sebagai argumen array struktur ClientSideProviderDescription, yang masing-masing menentukan properti berikut:

  • Fungsi panggilan balik yang membuat objek penyedia.

  • Nama kelas kontrol yang akan diberikan oleh penyedia.

  • Nama citra aplikasi (biasanya nama lengkap file yang dapat diakses) yang akan diberikan oleh penyedia.

  • Bendera yang mengatur cara nama kelas dicocokkan terhadap kelas jendela yang ditemukan di aplikasi target.

Dua parameter terakhir bersifat opsional. Klien dapat menentukan nama citra aplikasi target ketika ingin menggunakan penyedia yang berbeda untuk aplikasi yang berbeda. Misalnya, klien dapat menggunakan satu penyedia untuk kontrol tampilan daftar Win32 dalam aplikasi yang diketahui yang mendukung pola Multiple View, dan penyedia lainnya untuk kontrol serupa dalam aplikasi lain yang diketahui, yang tidak mendukung pola tersebut.

Lihat juga