Función AttachConsole

Asocia el proceso de llamada a la consola del proceso especificado como una aplicación cliente.

Sintaxis

BOOL WINAPI AttachConsole(
  _In_ DWORD dwProcessId
);

Parámetros

dwProcessId [in]
Identificador del proceso cuya consola se va a usar. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
pid Use la consola del proceso especificado.
ATTACH_PARENT_PROCESS(DWORD)-1 Use la consola del elemento primario del proceso actual.

Valor devuelto

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. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Un proceso se puede adjuntar como máximo a una consola. Si el proceso de llamada ya está asociado a una consola, el código de error devuelto es ERROR_ACCESS_DENIED. Si el proceso especificado no tiene una consola, el código de error devuelto es ERROR_INVALID_HANDLE. Si el proceso especificado no existe, el código de error devuelto es ERROR_INVALID_PARAMETER.

Un proceso puede usar la función FreeConsole para desasociarse de su consola. Si otros procesos comparten la consola, la consola no se destruye, pero el proceso que llamó a FreeConsole no puede hacer referencia a ella. Una consola se cierra cuando el último proceso adjunto finaliza o llama a FreeConsole. Después de que un proceso llame a FreeConsole, puede llamar a la función AllocConsole para crear una nueva consola o AttachConsole para asociarse a otra consola.

Esta función es principalmente útil para las aplicaciones vinculadas a /SUBSYSTEM:WINDOWS, lo que implica para el sistema operativo que no se necesita una consola antes de introducir el método principal del programa. En ese caso, es probable que los identificadores estándar recuperados con GetStdHandle no sean válidos al iniciarse hasta que se llame a AttachConsole. La excepción a esto es si la aplicación se inicia con la herencia de identificadores por su proceso primario.

Para compilar una aplicación que use esta función, defina _WIN32_WINNT como 0x0501 o posterior. Para obtener más información, consulte Uso de los encabezados de Windows.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado ConsoleApi.h (a través de WinCon.h, incluido Windows.h)
Biblioteca Kernel32.lib
Archivo DLL Kernel32.dll

Consulte también

Funciones de la consola

Consolas

AllocConsole

FreeConsole

GetConsoleProcessList