Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este tópico contém código de exemplo que mostra como implementar um do lado do cliente Interface do usuário de automação do provedor Dentro de um aplicativo.
This is an uncommon scenario.Na maioria das vezes, um Cliente de Automação interface do usuário Aplicativo usa provedores do lado do servidor, ou provedores do lado do cliente que residem em uma DLL.
Exemplo
The following example code implements a simple provider for a console window.O código não tem nenhuma funcionalidade útil, porém destina para demonstrar o Basic as etapas no configurando um provedor em código do cliente e registrando-lo usando RegisterClientSideProviders.
System;
System.Windows.Automation;
System.Windows.Automation.Provider;
System.Reflection;
System.Runtime.InteropServices;
System.IO;
CSClientProviderImplementation
{
CSClientSideImplementationProgram
{
[DllImport()]
IntPtr GetConsoleWindow();
Main(string[] args)
{
ClientSettings.RegisterClientSideProviders(
UIAutomationClientSideProviders.ClientSideProviderDescriptionTable);
IntPtr hwnd = GetConsoleWindow();
AutomationElement elementWindow = AutomationElement.FromHandle(hwnd);
Console.WriteLine();
Console.WriteLine(elementWindow.Current.Name);
Console.WriteLine();
Console.WriteLine();
Console.ReadLine();
}
}
UIAutomationClientSideProviders
{
ClientSideProviderDescription[] ClientSideProviderDescriptionTable =
{ ClientSideProviderDescription(
WindowProvider.Create,
) };
}
WindowProvider : IRawElementProviderSimple
{
IntPtr providerHwnd;
WindowProvider(IntPtr hwnd)
{
providerHwnd = hwnd;
}
IRawElementProviderSimple Create(
IntPtr hwnd, idChild, idObject)
{
Create(hwnd, idChild);
}
IRawElementProviderSimple Create(
IntPtr hwnd, idChild)
{
(idChild != 0) ;
WindowProvider(hwnd);
}
#region IRawElementProviderSimple
ProviderOptions IRawElementProviderSimple.ProviderOptions
{
{
ProviderOptions.ClientSideProvider;
}
}
IRawElementProviderSimple IRawElementProviderSimple.HostRawElementProvider
{
{
AutomationInteropProvider.HostProviderFromHandle(providerHwnd);
}
}
object IRawElementProviderSimple.GetPropertyValue( aid)
{
(AutomationProperty.LookupById(aid) ==
AutomationElementIdentifiers.NameProperty)
{
;
}
{
;
}
}
object IRawElementProviderSimple.GetPatternProvider( iid)
{
;
}
#endregion IRawElementProviderSimple
}
}
Consulte também
Tarefas
Register a Client-Side Provider Assembly
Criar um Provedor de Automação de Interface de Usuário do Lado do Cliente
Conceitos
UI Automation Providers Overview
Implementação de Provedor de Automação de Interface de Usuário do Lado do Cliente