Compartir a través de


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 poder establecer la ventana de primer plano. Para obtener más información, vea Comentarios más adelante en este tema.

Syntax

BOOL AllowSetForegroundWindow(
  [in] DWORD dwProcessId
);

Parámetros

[in] dwProcessId

Tipo: DWORD de

Identificador del proceso que se habilitará para establecer la ventana en 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 ejecuta correctamente, el valor devuelto es distinto de cero.

Si se produce un error en la función, 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.

Observaciones

El sistema restringe qué procesos 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:

  • Se cumplen todas las condiciones siguientes:
    • 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 de primer plano no ha deshabilitado las llamadas a SetForegroundWindow mediante una llamada anterior a la función LockSetForegroundWindow .
    • No hay menús activos.
  • Además, se cumple al menos una de las condiciones siguientes:
    • El tiempo de espera de bloqueo en primer plano ha expirado (consulte SPI_GETFOREGROUNDLOCKTIMEOUT en SystemParametersInfo).
    • El proceso de llamada es el proceso en primer plano.
    • El proceso de llamada lo inició 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 de 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

Requirement Importancia
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
Header winuser.h (incluya Windows.h)
Library User32.lib
DLL de 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