WindowClosedEventArgs.GetRuntimeId Methode

Definition

Ruft den Benutzeroberflächenautomatisierung Laufzeitbezeichner (ID) ab, der diesem Ereignis zugeordnet ist.

public:
 cli::array <int> ^ GetRuntimeId();
public int[] GetRuntimeId();
member this.GetRuntimeId : unit -> int[]
Public Function GetRuntimeId () As Integer()

Gibt zurück

Int32[]

Die Benutzeroberflächenautomatisierung Laufzeit-ID des Fensters, in dem das Ereignis ausgelöst wurde.

Beispiele

Im folgenden Beispiel ermittelt der Handler für das fenstergesperrte Ereignis, ob sich die Laufzeit-ID des geschlossenen Fensters in einer Liste der IDs geöffneter Fenster befindet. Wenn die Laufzeit-ID vorhanden ist, wird sie aus der Liste entfernt.

/// <summary>
/// Handles window-closed events. Removes the window from the top-level window list.
/// </summary>
/// <param name="sender">Object that raised the event.</param>
/// <param name="e">Event arguments.</param>
/// <remarks>
/// runtimteIds is an ArrayList that contains the runtime IDs of all top-level windows.
/// </remarks>
private void WindowClosedHandler(object sender, AutomationEventArgs e)
{
    WindowClosedEventArgs windowEventArgs = (WindowClosedEventArgs)e;
    int[] runtimeIdentifiers = windowEventArgs.GetRuntimeId();
    int index = RuntimeIdListed(runtimeIdentifiers, savedRuntimeIds);
    if (index >= 0)
    {
        savedRuntimeIds.RemoveAt(index);
        Console.WriteLine("Window closed.");
    }
}

/// <summary>
/// Ascertains whether the window is in the list.
/// </summary>
/// <param name="rid">Runtime ID of the window.</param>
/// <returns>Index of the ID in the list, or -1 if it is not listed.</returns>
/// <remarks>
/// runtimteIds is an ArrayList that contains the runtime IDs of all top-level windows.
/// </remarks>
private int RuntimeIdListed(int[] runtimeId, ArrayList runtimeIds)
{
    for (int x = 0; x < runtimeIds.Count; x++)
    {
        int[] listedId = (int[])runtimeIds[x];
        if (Automation.Compare(listedId, runtimeId))
        {
            return x;
        }
    }
    return -1;
}
''' <summary>
''' Handles window-closed events. Removes the window from the top-level window list.
''' </summary>
''' <param name="sender">Object that raised the event.</param>
''' <param name="e">Event arguments.</param>
''' <remarks>
''' runtimteIds is an ArrayList that contains the runtime IDs of all top-level windows.
''' </remarks>
Private Sub WindowClosedHandler(ByVal sender As Object, ByVal e As AutomationEventArgs) 
    Dim windowEventArgs As WindowClosedEventArgs = CType(e, WindowClosedEventArgs)
    Dim runtimeIdentifiers As Integer() = windowEventArgs.GetRuntimeId()
    Dim index As Integer = RuntimeIdListed(runtimeIdentifiers, savedRuntimeIds)
    If index >= 0 Then
        savedRuntimeIds.RemoveAt(index)
        Console.WriteLine("Window closed.")
    End If

End Sub


''' <summary>
''' Ascertains whether the window is in the list.
''' </summary>
''' <param name="rid">Runtime ID of the window.</param>
''' <returns>Index of the ID in the list, or -1 if it is not listed.</returns>
''' <remarks>
''' runtimteIds is an ArrayList that contains the runtime IDs of all top-level windows.
''' </remarks>
Private Function RuntimeIdListed(ByVal runtimeId() As Integer, ByVal runtimeIds As ArrayList) As Integer 
    Dim x As Integer
    For x = 0 To runtimeIds.Count - 1
        Dim listedId As Integer() = CType(runtimeIds(x), Integer())
        If Automation.Compare(listedId, runtimeId) Then
            Return x
        End If
    Next x
    Return - 1

End Function 'RuntimeIdListed

Hinweise

Wenn Die Anwendung ein fenstergeschließendes Ereignis empfängt, kann der parameter sender des Ereignishandlers nicht verwendet werden, um Informationen zum geschlossenen Fenster abzurufen, da das entsprechende Microsoft Benutzeroberflächenautomatisierung-Element nicht mehr gültig ist. Wird GetRuntimeId verwendet, um dem Fenster einen bekannten Bezeichner zuzuordnen.

Gilt für: