Bagikan melalui


Implementasi Penyedia Otomatisasi UI Client-Side

Nota

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

Beberapa kerangka kerja antarmuka pengguna (UI) yang berbeda digunakan dalam sistem operasi Microsoft, termasuk Win32, Windows Forms, dan Windows Presentation Foundation (WPF). Microsoft UI Automation mengekspos informasi tentang elemen UI kepada klien. Namun, Automasi UI tidak memiliki kesadaran tentang berbagai jenis kontrol yang ada dalam kerangka kerja ini dan teknik yang diperlukan untuk mengekstrak informasi dari mereka. Sebaliknya, ia meninggalkan tugas ini ke objek yang disebut penyedia. Penyedia mengekstrak informasi dari kontrol tertentu dan menyerahkan informasi tersebut ke UI Automation, yang kemudian menyajikannya kepada klien secara konsisten.

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

Namun, kontrol lama seperti yang ada di Win32 dan Windows Forms tidak secara langsung mendukung Automasi UI. Kontrol ini dilayani sebagai gantinya oleh penyedia yang ada dalam proses klien dan mendapatkan 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 Windows Forms standar. Selain itu, penyedia fallback memberikan dukungan Automation UI parsial ke kontrol apa pun yang tidak dilayani oleh penyedia atau proksi sisi server lain tetapi memiliki implementasi Aksesibilitas Aktif Microsoft. Semua penyedia ini secara otomatis dimuat dan tersedia untuk aplikasi klien.

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

Aplikasi juga dapat mendaftarkan penyedia sisi klien lainnya.

Mendistribusikan Penyedia Client-Side

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

Mendaftar dan Mengonfigurasi Penyedia Client-Side

Penyedia sisi klien dalam pustaka tautan dinamis (DLL) dimuat dengan memanggil RegisterClientSideProviderAssembly. Tidak ada tindakan lebih lanjut yang diperlukan oleh aplikasi klien untuk menggunakan penyedia.

Penyedia yang diterapkan dalam kode klien sendiri didaftarkan dengan menggunakan RegisterClientSideProviders. Metode ini menerima sebagai argumen sebuah array ClientSideProviderDescription struktur, di mana setiap struktur menetapkan properti berikut:

  • Fungsi panggilan balik yang membuat objek penyedia.

  • Nama kelas kontrol yang akan dilayani penyedia.

  • Nama gambar aplikasi (biasanya nama lengkap file yang dapat dieksekusi) yang akan dilayani penyedia.

  • Bendera yang mengatur bagaimana nama kelas dicocokkan dengan kelas jendela yang ditemukan di aplikasi target.

Dua parameter terakhir bersifat opsional. Klien mungkin menentukan nama gambar aplikasi target ketika ingin menggunakan penyedia yang berbeda untuk aplikasi yang berbeda. Misalnya, klien mungkin menggunakan satu penyedia untuk kontrol tampilan daftar Win32 di aplikasi yang diketahui mendukung pola Tampilan Ganda, dan penyedia lain untuk kontrol serupa di aplikasi lain yang diketahui tidak mendukung pola tersebut.

Lihat juga