Implementazione dei provider di automazione interfaccia utente sul lato client

Nota

Questa documentazione è destinata agli sviluppatori .NET Framework che desiderano utilizzare le classi di Automazione interfaccia utente gestite definite nello spazio dei nomi System.Windows.Automation. Per informazioni aggiornate su Automazione interfaccia utente, vedere API di automazione di Windows: Automazione interfaccia utente.

Diversi framework dell'interfaccia utente sono in uso all'interno dei sistemi operativi Microsoft, inclusi Win32, Windows Form e Windows Presentation Foundation (WPF). Automazione interfaccia utente Microsoft espone ai client le informazioni sugli elementi dell'interfaccia utente. Tuttavia, Automazione interfaccia utente è in grado di differenziare i vari tipi di controlli esistenti in tali framework e le tecniche necessarie per estrarre informazioni da essi. Queste attività vengono invece demandate a oggetti denominati provider. Un provider estrae le informazioni da un controllo specifico e inoltra tali informazioni a Automazione interfaccia utente, che quindi le presenta al client in modo coerente.

I provider possono esistere sul lato server o sul lato client. Un provider lato server è implementato dal controllo stesso. Gli elementi WPF implementano provider, così come qualsiasi controllo di terze parti scritto basandosi su Automazione interfaccia utente.

Tuttavia, i controlli meno recenti, ad esempio quelli in Win32 e in Windows Form, non supportano direttamente l'automazione interfaccia utente. Questi controlli vengono invece gestiti da provider presenti nel processo client e ottengono informazioni sui controlli mediante la comunicazione tra processi, ad esempio monitorando i messaggi Windows da e verso i controlli. Questi provider lato client vengono talvolta definiti proxy.

Windows Vista fornisce provider per i controlli Win32 e Windows Form standard. Inoltre, un provider di fallback supporta parzialmente l’automazione interfaccia utente per qualsiasi controllo non gestito da un altro provider o proxy lato server, ma ha l'implementazione di Microsoft Active Accessibility. Tutti questi provider vengono caricati automaticamente e sono disponibili per le applicazioni client.

Per altre informazioni sul supporto per i controlli Win32 e Windows Forms, vedere Supporto per i controlli standard di Automazione interfaccia utente.

Le applicazioni possono inoltre registrare altri provider lato client.

Distribuzione di provider lato client

Automazione interfaccia utente prevede di trovare provider lato client in un assembly gestito a livello di codice. Lo spazio dei nomi in questo assembly deve avere lo stesso nome dell'assembly. Ad esempio, un assembly denominato ContosoProxies.dll conterrà lo spazio dei nomi ContosoProxies. Nello spazio dei nomi creare una classe UIAutomationClientSideProviders . Nell'implementazione del campo statico ClientSideProviderDescriptionTable creare una matrice di strutture ClientSideProviderDescription che descrivono i provider.

Registrazione e configurazione dei provider lato client

Il caricamento dei provider lato client in una libreria di collegamento dinamico (DLL) avviene chiamando RegisterClientSideProviderAssembly. Non sono richieste altre azioni da parte di un'applicazione client per usare i provider.

I provider implementati nel codice del client vengono registrati tramite RegisterClientSideProviders. Questo metodo accetta come argomento una matrice di strutture ClientSideProviderDescription , ognuna delle quali specifica le proprietà seguenti:

  • Una funzione di callback che crea l'oggetto provider.

  • Il nome della classe dei controlli che il provider gestirà.

  • Il nome dell'immagine dell'applicazione (in genere il nome completo del file eseguibile) che il provider gestirà.

  • I flag che controllano il modo in cui il nome della classe è associato alle classi di finestra disponibili nell'applicazione di destinazione.

Gli ultimi due parametri sono facoltativi. Il client può specificare il nome dell'immagine dell'applicazione di destinazione quando desidera usare provider diversi per applicazioni diverse. Ad esempio, il client potrebbe usare un provider per un controllo vista elenco Win32 in un'applicazione nota che supporta il criterio Vista multipla e un altro per un controllo simile in un'altra applicazione nota che non lo supporta.

Vedi anche