Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 |