Compartilhar via


Função AttachConsole

Anexa o processo de chamada ao console do processo especificado como um aplicativo cliente.

Sintaxe

BOOL WINAPI AttachConsole(
  _In_ DWORD dwProcessId
);

Parâmetros

dwProcessId [in]
O identificador do processo cujo console deve ser usado. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
pid Use o console do processo especificado.
ATTACH_PARENT_PROCESS (DWORD)-1 Use o console do pai do processo atual.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Um processo pode ser anexado a um console, no máximo. Se o processo de chamada já estiver conectado a um console, o código de erro retornado será ERROR_ACCESS_DENIED. Se o processo especificado não tiver um console, o código de erro retornado será ERROR_INVALID_HANDLE. Se o processo especificado não existir, o código de erro retornado será ERROR_INVALID_PARAMETER.

Um processo pode usar a função FreeConsole para se desanexar de seu console. Se outros processos compartilharem o console, o console não será destruído, mas o processo que chamou FreeConsole não poderá referenciá-lo. Consoles são fechados quando o último processo anexado a eles termina ou chama FreeConsole. Após um processo chamar FreeConsole, pode chamar a função AllocConsole para criar um novo console ou AttachConsole para se anexar a outro console.

Essa função é útil principalmente para aplicativos vinculados com /SUBSYSTEM:WINDOWS, o que implica para o sistema operacional que um console não é necessário antes de entrar no método principal do programa. Nesse caso, os identificadores padrão recuperados com GetStdHandle provavelmente serão inválidos na inicialização até a chamada de AttachConsole. A exceção é o caso em que o aplicativo é iniciado com herança de identificador por seu processo pai.

Para compilar aplicativos que usam essa função, defina _WIN32_WINNT como 0x0501 ou posterior. Para obter mais informações, consulte Usar os cabeçalhos do Windows.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho ConsoleApi.h (via WinCon.h, inclui o Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de Console

Consoles

AllocConsole

FreeConsole

GetConsoleProcessList