Compartir a través de


WindowPattern.WaitForInputIdle(Int32) Método

Definición

Hace que el código de llamada se bloquee durante el tiempo especificado o hasta que el proceso asociado entre en un estado de inactividad, lo que ocurra primero.

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

Parámetros

milliseconds
Int32

Cantidad de tiempo, en milisegundos, que se esperará hasta que el proceso asociado entre a un estado de inactividad. El máximo es Int32.MaxValue.

Devoluciones

Es true si la ventana ha entrado en el estado de inactividad; es false si se agotó el tiempo de espera.

Excepciones

El parámetro pasado no es un número válido.

Ejemplos

En el ejemplo siguiente, se obtiene un WindowPattern patrón de control de AutomationElement y usa WaitForInputIdle para confirmar que el elemento está listo para la interacción del usuario dentro de un período de tiempo razonable.

///--------------------------------------------------------------------
/// <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

Comentarios

Este método se usa normalmente junto con el control de .WindowOpenedEvent

La implementación depende del marco de aplicación subyacente; por lo tanto, este método puede devolver algún tiempo después de que la ventana esté lista para la entrada del usuario. El código de llamada no debe basarse en este método para determinar exactamente cuándo la ventana está inactiva.

Se aplica a