WindowPattern.WaitForInputIdle(Int32) Methode

Definition

Bewirkt, dass der aufrufende Code für die angegebene Zeit blockiert wird oder bis der zugeordnete Prozess einen Leerlaufzustand eingibt, je nachdem, was zuerst abgeschlossen wird.

public:
 bool WaitForInputIdle(int milliseconds);
public bool WaitForInputIdle(int milliseconds);
member this.WaitForInputIdle : int -> bool
Public Function WaitForInputIdle (milliseconds As Integer) As Boolean

Parameter

milliseconds
Int32

Die Zeitspanne in Millisekunden, bis der zugeordnete Prozess im Leerlauf ausgeführt wird. Der Höchstwert ist Int32.MaxValue.

Gibt zurück

true wenn das Fenster den Leerlaufstatus eingegeben hat; false wenn das Timeout aufgetreten ist.

Ausnahmen

Der übergebene Parameter ist keine gültige Zahl.

Beispiele

Im folgenden Beispiel wird ein WindowPattern Steuerelementmuster aus einem AutomationElement Steuerelement abgerufen und verwendet WaitForInputIdle , um zu bestätigen, dass das Element innerhalb eines angemessenen Zeitraums für die Benutzerinteraktion bereit ist.

///--------------------------------------------------------------------
/// <summary>
/// Obtains a WindowPattern control pattern from an automation element.
/// </summary>
/// <param name="targetControl">
/// The automation element of interest.
/// </param>
/// <returns>
/// A WindowPattern object.
/// </returns>
///--------------------------------------------------------------------
private WindowPattern GetWindowPattern(AutomationElement targetControl)
{
    WindowPattern windowPattern = null;

    try
    {
        windowPattern =
            targetControl.GetCurrentPattern(WindowPattern.Pattern)
            as WindowPattern;
    }
    catch (InvalidOperationException)
    {
        // object doesn't support the WindowPattern control pattern
        return null;
    }
    // Make sure the element is usable.
    if (false == windowPattern.WaitForInputIdle(10000))
    {
        // Object not responding in a timely manner
        return null;
    }
    return windowPattern;
}
'''------------------------------------------------------------------------
''' <summary>
''' Obtains a WindowPattern control pattern from an automation element.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
''' <returns>
''' A WindowPattern object.
''' </returns>
'''------------------------------------------------------------------------
Private Function GetWindowPattern(ByVal targetControl As AutomationElement) As WindowPattern
    Dim windowPattern As WindowPattern = Nothing

    Try
        windowPattern = DirectCast( _
        targetControl.GetCurrentPattern(windowPattern.Pattern), _
        WindowPattern)
    Catch
        ' object doesn't support the WindowPattern control pattern
        Return Nothing
    End Try
    ' Make sure the element is usable.
    If False = windowPattern.WaitForInputIdle(10000) Then
        ' Object not responding in a timely manner
        Return Nothing
    End If
    Return windowPattern
End Function 'GetWindowPattern

Hinweise

Diese Methode wird in der Regel in Verbindung mit der Behandlung eines .WindowOpenedEvent

Die Implementierung hängt vom zugrunde liegenden Anwendungsframework ab; Daher kann diese Methode einige Zeit zurückgeben, nachdem das Fenster für die Benutzereingabe bereit ist. Der aufrufende Code sollte sich nicht auf diese Methode verlassen, um genau zu ermitteln, wann das Fenster im Leerlauf ist.

Gilt für: