Partilhar 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 [em]
O identificador do processo cujo console deve ser usado. Este parâmetro pode ser um dos seguintes valores.

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

Valor de retorno

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

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

Observações

Um processo pode ser anexado a, no máximo, um console. 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 é ERROR_INVALID_PARAMETER.

Um processo pode usar a função FreeConsole para se separar de seu console. Se outros processos compartilharem o console, o console não será destruído, mas o processo chamado FreeConsole não poderá se referir a ele. Um console é fechado quando o último processo anexado a ele termina ou chama FreeConsole. Depois que um processo chama FreeConsole, ele pode chamar a função AllocConsole para criar um novo console ou AttachConsole para anexar a outro console.

Esta função é principalmente útil para aplicativos que foram 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é que AttachConsole seja chamado. A exceção a isso é se o aplicativo for iniciado com herança de identificador por seu processo pai.

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

Requerimentos

   
Cliente mínimo suportado Windows XP [apenas aplicações de ambiente de trabalho]
Servidor mínimo suportado Windows Server 2003 [apenas aplicações de ambiente de trabalho]
Cabeçalho ConsoleApi.h (via WinCon.h, inclui Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Ver também

Funções do console

Consolas

AllocConsoleWithOptions

AllocConsole

FreeConsole

GetConsoleProcessList