Registrieren einer clientseitigen Anbieterassembly
Hinweis |
---|
Diese Dokumentation ist für .NET Framework-Entwickler vorgesehen, die die verwalteten UI Automation-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind.Aktuelle Informationen zu UI Automation finden Sie unter Windows Automation API: UI Automation. |
Dieses Thema zeigt, wie Sie eine DLL registrieren, die clientseitige Benutzeroberflächenautomatisierungs-Anbieter enthält.
Beispiel
In folgendem Beispiel wird gezeigt, wie eine Assembly mit einem Anbieter für ein Konsolenfenster registriert wird.
Imports System
Imports System.Windows.Automation
Imports System.Reflection
Imports System.Runtime.InteropServices ' for DllImport
Imports System.IO
Namespace CSClient
Friend Class CSClientProgram
<DllImport("kernel32.dll")>
Shared Function GetConsoleWindow() As IntPtr
End Function
Shared Sub Main(ByVal args() As String)
' TODO Change the path to the appropriate one for your CSProviderDLL.
Dim fileloc As String = "C:\SampleDependencies\CSProviderDLL.dll"
Dim a As System.Reflection.Assembly = Nothing
Try
a = System.Reflection.Assembly.LoadFile(fileloc)
Catch e1 As FileNotFoundException
Console.WriteLine(e1.Message)
End Try
If a IsNot Nothing Then
Try
ClientSettings.RegisterClientSideProviderAssembly(a.GetName())
Catch e As ProxyAssemblyNotLoadedException
Console.WriteLine(e.Message)
End Try
Dim hwnd As IntPtr = GetConsoleWindow()
' Get an AutomationElement that represents the window.
Dim elementWindow As AutomationElement = AutomationElement.FromHandle(hwnd)
Console.WriteLine("Found UI Automation client-side provider for:")
' The name property is furnished by the client-side provider.
Console.WriteLine(elementWindow.Current.Name)
Console.WriteLine()
End If
Console.WriteLine("Press any key to exit.")
Console.ReadLine()
End Sub
End Class
End Namespace
using System;
using System.Windows.Automation;
using System.Reflection;
using System.Runtime.InteropServices; // for DllImport
using System.IO;
namespace CSClient
{
class CSClientProgram
{
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
static void Main(string[] args)
{
// TODO Change the path to the appropriate one for your CSProviderDLL.
string fileloc = @"C:\SampleDependencies\CSProviderDLL.dll";
Assembly a = null;
try
{
a = Assembly.LoadFile(fileloc);
}
catch (FileNotFoundException e1)
{
Console.WriteLine(e1.Message);
}
if (a != null)
{
try
{
ClientSettings.RegisterClientSideProviderAssembly(a.GetName());
}
catch (ProxyAssemblyNotLoadedException e)
{
Console.WriteLine(e.Message);
}
IntPtr hwnd = GetConsoleWindow();
// Get an AutomationElement that represents the window.
AutomationElement elementWindow = AutomationElement.FromHandle(hwnd);
Console.WriteLine("Found UI Automation client-side provider for:");
// The name property is furnished by the client-side provider.
Console.WriteLine(elementWindow.Current.Name);
Console.WriteLine();
}
Console.WriteLine("Press any key to exit.");
Console.ReadLine();
}
}
}
Siehe auch
Aufgaben
Erstellen eines clientseitigen Benutzeroberflächenautomatisierungs-Anbieters