Bagikan melalui


Gambaran Umum TextPattern UI Automation

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.

Gambaran umum ini menjelaskan cara menggunakan UI Automation Microsoft untuk mengekspos konten tekstual, termasuk atribut format dan gaya, dari kontrol teks di platform yang didukung UI Automation. Kontrol ini mencakup, namun tidak terbatas pada, Microsoft .NET Framework TextBox dan RichTextBox serta yang setara dengan Win32.

Mengekspos konten tekstual dari kontrol dilakukan melalui penggunaan pola kontrol TextPattern, yang mewakili konten kontainer teks sebagai aliran teks. Pada gilirannya, TextPattern memerlukan dukungan kelas TextPatternRange untuk mengekspos atribut format dan gaya. TextPatternRange mendukung TextPattern dengan mewakili beberapa teks atau teks yang berdekatan, rentang teks terputus-putus dalam kontainer teks dengan kumpulan titik akhir Start dan End. TextPatternRange mendukung fungsionalitas seperti seleksi, perbandingan, pengambilan dan traversal.

Catatan

Kelas TextPattern tidak menyediakan sarana untuk menyisipkan atau memodifikasi teks. Namun, tergantung pada kontrolnya, hal ini dapat dilakukan dengan UI Automation ValuePattern atau melalui input keyboard langsung. Lihat Contoh Teks Sisipkan TextPattern untuk contoh.

Fungsionalitas yang dijelaskan dalam gambaran umum ini sangat penting untuk vendor teknologi pendukung dan pengguna akhir mereka. Teknologi bantuan dapat menggunakan UI Automation untuk mengumpulkan informasi pemformatan teks lengkap bagi pengguna dan menyediakan navigasi terprogram dan pemilihan teks menurut TextUnit (karakter, kata, baris, atau paragraf).

TextPattern UI Automation vs. Kerangka Kerja Layanan Teks

Text Services Framework (TSF) adalah kerangka kerja sistem sederhana dan skalabel yang memungkinkan layanan bahasa komputer alami dan input teks tingkat lanjut di desktop dan di dalam aplikasi. Selain menyediakan antarmuka untuk aplikasi untuk mengekspos penyimpanan teks mereka, itu juga mendukung metadata untuk penyimpanan teks itu.

Namun, TSF dirancang untuk aplikasi yang perlu untuk memasukkan input ke dalam skenario kontekstual sedangkan TextPattern adalah solusi hanya-baca (dengan solusi terbatas yang disebutkan di atas) yang dimaksudkan untuk memberikan akses yang dioptimalkan ke penyimpanan teks untuk pembaca layar dan Braille perangkat.

Singkatnya, teknologi yang dapat diakses yang memerlukan akses hanya-baca ke penyimpanan teks dapat menggunakan TextPattern, tetapi akan membutuhkan fungsionalitas TSF yang lebih kompleks untuk masukan kontekstual.

Jenis kontrol

Teks

Kontrol Teks adalah elemen dasar yang mewakili sepotong teks di layar.

Kontrol teks mandiri dapat digunakan sebagai label atau teks statik pada formulir. Kontrol teks juga dapat dimuat dalam struktur ListItem, TreeItem, atau DataItem.

Catatan

Kontrol teks mungkin tidak muncul dalam tampilan konten pohon UI Automation (lihat Gambaran Umum Pohon UI Automation). Ini karena kontrol teks sering ditampilkan melalui properti Nama dari kontrol lain. Untuk instans, teks yang digunakan untuk memberi label pada kontrol Edit diekspos melalui properti Nama dari kontrol Edit. Karena kontrol Edit berada dalam tampilan konten pohon UI Automation, elemen teks itu sendiri tidak perlu berada dalam tampilan pohon UI Automation tersebut. Satu-satunya teks yang muncul dalam tampilan konten adalah teks yang bukan merupakan informasi yang berlebihan. Ini memungkinkan setiap teknologi bantuan dengan cepat memfilter hanya pada bagian informasi yang dibutuhkan penggunanya.

Edit

Kontrol edit memungkinkan pengguna untuk melihat dan mengedit baris teks tunggal.

Catatan

Baris teks tunggal mungkin terbungkus dalam skenario tata letak tertentu.

Dokumen

Kontrol dokumen memungkinkan pengguna menavigasi dan memperoleh informasi dari beberapa halaman teks.

API Klien TextPattern

Tipe Deskripsi
System.Windows.Automation.TextPattern kelas Titik masuk untuk model teks UI Automation Microsoft.

Kelas ini juga berisi dua TextPattern pendengar peristiwa, TextSelectionChangedEvent dan TextChangedEvent.
System.Windows.Automation.Text.TextPatternRange kelas Representasi rentang teks dalam kontainer teks yang mendukung TextPattern.

Klien UI Automation harus berhati-hati dengan validitas terkini dari rentang teks yang dibuat menggunakan TextPatternRange. Jika teks asli di kontrol teks sepenuhnya diganti dengan teks baru, rentang teks saat ini menjadi tidak valid. Namun, rentang teks mungkin masih memiliki beberapa kelayakan jika hanya sebagian dari teks asli yang diubah dan kontrol teks yang mendasarinya mengelola "penunjuk" teksnya dengan jangkar (atau titik akhir) daripada dengan pemosisian karakter absolut.

Klien dapat mendengarkan TextChangedEvent untuk pemberitahuan tentang perubahan apa pun pada konten tekstual yang mereka kerjakan.
System.Windows.Automation.AutomationTextAttribute kelas Digunakan untuk mengidentifikasi atribut pemformatan rentang teks.

API Penyedia TextPattern

Elemen atau kontrol antarmuka pengguna yang mendukung TextPattern dengan menerapkan antarmuka ITextProvider dan ITextRangeProvider, baik secara asli atau melalui proxy UI Automation Microsoft, mampu memperlihatkan informasi atribut terperinci untuk teks apa pun yang dikandungnya selain menyediakan kemampuan navigasi yang kuat.

Penyedia TextPattern tidak harus mendukung semua atribut teks jika kontrol tidak memiliki dukungan untuk atribut tertentu.

Penyedia TextPattern harus mendukung fungsi GetSelection dan Select jika kontrol mendukung pemilihan teks atau penempatan kursor teks (atau tanda sisipan sistem) di dalam area teks. Jika kontrol tidak mendukung fungsi ini, maka tidak perlu mendukung salah satu metode ini. Namun, kontrol harus mengekspos jenis pemilihan teks yang didukungnya dengan menerapkan properti SupportedTextSelection.

Penyedia TextPattern harus selalu mendukung konstanta TextUnitCharacter dan Document serta konstanta TextUnit lainnya yang mampu didukungnya.

Catatan

Penyedia dapat melewati dukungan tertentu untuk TextUnit dengan mengalihkan ke TextUnit terbesar berikutnya yang didukung dalam urutan berikut: Character, Format, Word, Line, Paragraph, Page, dan Document.

API Deskripsi
Antarmuka ITextProvider Mengekspos metode, properti, dan atribut yang mendukung TextPattern dalam aplikasi klien (lihat ITextProvider).
Antarmuka ITextRangeProvider Mewakili rentang teks dalam penyedia teks (lihat ITextRangeProvider).
System.Windows.Automation.TextPatternIdentifiers kelas Berisi nilai yang digunakan sebagai pengidentifikasi untuk penyedia teks (lihat TextPatternIdentifiers).

Keamanan

Arsitektur UI Automation dirancang dengan mempertimbangkan keamanan (lihat Ringkasan Keamanan UI Automation). Namun, kelas TextPattern yang dijelaskan dalam gambaran umum ini memerlukan beberapa pertimbangan keamanan khusus.

  • Penyedia teks UI Automation Microsoft menyediakan antarmuka hanya-baca dan tidak menyediakan kemampuan untuk mengubah teks yang ada dalam kontrol.

  • Klien UI Automation hanya dapat menggunakan UI Automation Microsoft jika mereka sepenuhnya "tepercaya". Contohnya adalah Desktop Logon yang dilindungi, saat hanya aplikasi yang dikenal dan tepercaya yang dapat berjalan.

  • Pengembang penyedia UI Automation harus menyadari bahwa semua informasi yang mereka pilih untuk diekspos dalam kontrol mereka melalui UI Automation Microsoft pada dasarnya bersifat publik dan dapat diakses sepenuhnya oleh kode lain. UI Automation Microsoft tidak berusaha untuk menentukan kepercayaan klien UI Automation mana pun dan oleh karena itu penyedia UI Automation tidak boleh mengekspos konten yang dilindungi atau informasi tekstual sensitif (seperti bidang kata sandi).

  • Salah satu perubahan paling signifikan dalam keamanan untuk Windows Vista secara luas disebut sebagai "Input Aman" yang mencakup teknologi seperti Akun Pengguna (LUA) dengan hak istimewa paling rendah (atau Terbatas) dan Isolasi Tingkat Hak Istimewa Antarmuka Pengguna (UIPI).

    • UIPI mencegah satu program mengendalikan dan/atau memantau program lain yang lebih "istimewa", mencegah serangan pesan jendela lintas proses yang menipu input pengguna.

    • LUA mengatur batasan pada hak istimewa aplikasi yang dijalankan oleh pengguna dalam grup Administrator. Aplikasi tidak harus memiliki hak istimewa administrator, tetapi akan berjalan dengan hak istimewa paling sedikit yang diperlukan. Akibatnya, mungkin ada beberapa batasan yang diberlakukan dalam skenario LUA. Terutama pemotongan string (termasuk string TextPattern), tempat mungkin perlu untuk membatasi ukuran string yang diambil dari aplikasi tingkat administrator sehingga mereka tidak dipaksa untuk mengalokasikan memori ke titik menonaktifkan aplikasi.

Performa

Karena TextPattern bergantung pada panggilan lintas proses untuk sebagian besar fungsinya, TextPattern tidak menyediakan mekanisme penembolokan untuk meningkatkan performa saat memproses konten. Ini tidak seperti pola kontrol lain di UI Automation Microsoft yang dapat diakses menggunakan metode GetCachedPattern atau TryGetCachedPattern.

Salah satu taktik untuk meningkatkan performa adalah dengan memastikan klien UI Automation mencoba mengambil blok teks berukuran sedang menggunakan GetText. Misalnya, panggilan GetText(1) akan menimbulkan klik lintas-proses untuk setiap karakter sedangkan satu panggilan GetText(-1) akan menimbulkan satu klik lintas-proses, tetapi dapat memiliki latensi tinggi tergantung pada ukuran penyedia teks.

Terminologi TextPattern

Atribut
Karakteristik pemformatan rentang teks (misalnya, IsItalicAttribute atau FontNameAttribute).

Degenerasi Rentang
Rentang degenerasi adalah rentang teks kosong atau nol karakter. Untuk tujuan pola kontrol TextPattern, titik penyisipan teks (atau tanda sisipan sistem) dianggap sebagai rentang degenerasi. Jika tidak ada teks yang dipilih, GetSelection akan mengembalikan rentang degenerasi pada titik penyisipan teks dan RangeFromPoint akan mengembalikan rentang degenerasi sebagai titik akhir awalnya. RangeFromChild dan GetVisibleRanges dapat mengembalikan rentang degenerasi bila penyedia teks tidak dapat menemukan rentang teks yang cocok dengan kondisi yang diberikan. Rentang degenerasi ini dapat digunakan sebagai titik akhir awal dalam penyedia teks. FindText dan FindAttribute mengembalikan referensi null (Nothing dalam Microsoft Visual Basic .NET) untuk menghindari kehilangan arah dengan rentang yang ditemukan versus rentang degenerasi.

Objek Tersemat
Ada dua jenis objek yang disematkan dalam model teks UI Automation. Mereka terdiri dari elemen konten berbasis teks seperti hyperlink atau tabel, dan elemen kontrol seperti gambar dan tombol. Untuk informasi lebih detail, lihat Mengakses Objek Tersemat Menggunakan UI Automation.

Endpoint
Titik Start atau End absolut dari rentang teks dalam kontainer teks.

TextPatternRangeEndpoints (awal dan akhir). Berikut ini mengilustrasikan sekumpulan titik awal dan akhir.

TextRange
Representasi rentang teks, dengan titik awal dan akhir, dalam kontainer teks termasuk semua atribut dan fungsionalitas terkait.

TextUnit
Unit teks yang telah ditentukan sebelumnya (karakter, kata, baris, atau paragraf) yang digunakan untuk menavigasi melalui segmen logis dari rentang teks.

Lihat juga