Funzione AttachConsole

Collega il processo chiamante alla console del processo specificato come applicazione client.

Sintassi

BOOL WINAPI AttachConsole(
  _In_ DWORD dwProcessId
);

Parametri

dwProcessId [in]
Identificatore del processo la cui console deve essere utilizzata. Questo parametro può avere uno dei valori seguenti.

valore Significato
pid Usare la console del processo specificato.
ATTACH_PARENT_PROCESS(DWORD)-1 Usare la console dell'elemento padre del processo corrente.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Osservazioni:

Un processo può essere collegato al massimo a una console. Se il processo chiamante è già collegato a una console, il codice di errore restituito viene ERROR_ACCESS_DENIED. Se il processo specificato non dispone di una console, il codice di errore restituito viene ERROR_INVALID_HANDLE. Se il processo specificato non esiste, il codice di errore restituito viene ERROR_INVALID_PARAMETER.

Un processo può usare la funzione FreeConsole per scollegarsi dalla console. Se altri processi condividono la console, la console non viene eliminata definitivamente, ma il processo chiamato FreeConsole non può farvi riferimento. Una console viene chiusa quando l'ultimo processo collegato termina o chiama FreeConsole. Dopo che un processo chiama FreeConsole, può chiamare la funzione AllocConsole per creare una nuova console o AttachConsole da collegare a un'altra console.

Questa funzione è particolarmente utile per le applicazioni collegate a /SUBSYSTEM:WINDOWS, che implica al sistema operativo che una console non è necessaria prima di immettere il metodo principale del programma. In tale istanza, gli handle standard recuperati con GetStdHandle probabilmente non saranno validi all'avvio fino a quando non viene chiamato AttachConsole. L'eccezione è se l'applicazione viene avviata con l'ereditarietà dell'handle dal processo padre.

Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0501 o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione ConsoleApi.h (tramite WinCon.h, con Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedi anche

Funzioni della console

Console

AllocConsole

FreeConsole

GetConsoleProcessList