Función AllowSetForegroundWindow (winuser.h)

Habilita el proceso especificado para establecer la ventana de primer plano mediante la función SetForegroundWindow . El proceso de llamada ya debe ser capaz de establecer la ventana en primer plano. Para obtener más información, vea Comentarios más adelante en este tema.

Sintaxis

BOOL AllowSetForegroundWindow(
  [in] DWORD dwProcessId
);

Parámetros

[in] dwProcessId

Tipo: DWORD

Identificador del proceso que se habilitará para establecer la ventana de primer plano. Si este parámetro es ASFW_ANY, todos los procesos se habilitarán para establecer la ventana en primer plano.

Valor devuelto

Tipo: BOOL

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Se producirá un error en la función si el proceso de llamada no puede establecer la ventana en primer plano. Para obtener información de error extendida, llame a GetLastError.

Comentarios

El sistema restringe los procesos que pueden establecer la ventana de primer plano. Normalmente, un proceso puede establecer la ventana de primer plano llamando a la función SetForegroundWindow solo si:

  • Todas las condiciones siguientes son verdaderas:
    • El proceso de llamada pertenece a una aplicación de escritorio, no a una aplicación para UWP o a una aplicación de la Tienda Windows diseñada para Windows 8 o 8.1.
    • El proceso en primer plano no ha deshabilitado las llamadas a SetForegroundWindow mediante una llamada anterior a la función LockSetForegroundWindow .
    • El tiempo de espera de bloqueo en primer plano ha expirado (consulte SPI_GETFOREGROUNDLOCKTIMEOUT en SystemParametersInfo).
    • No hay menús activos.
  • Además, se cumple al menos una de las siguientes condiciones:
    • El proceso de llamada es el proceso en primer plano.
    • El proceso de llamada se inició mediante el proceso en primer plano.
    • Actualmente no hay ninguna ventana de primer plano y, por tanto, no hay ningún proceso en primer plano.
    • El proceso de llamada recibió el último evento de entrada.
    • Se está depurando el proceso en primer plano o el proceso de llamada.

Un proceso que puede establecer la ventana de primer plano puede habilitar otro proceso para establecer la ventana de primer plano llamando a AllowSetForegroundWindow. El proceso especificado por el parámetro dwProcessId pierde la capacidad de establecer la ventana en primer plano la próxima vez que el usuario genere la entrada, a menos que la entrada se dirija a ese proceso o la próxima vez que un proceso llame a AllowSetForegroundWindow, a menos que se especifique el mismo proceso que en la llamada anterior a AllowSetForegroundWindow.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-window-l1-1-0 (introducido en Windows 8)

Consulte también

Conceptual

LockSetForegroundWindow

Referencia

SetForegroundWindow

Windows