Delen via


De functie AttachConsole

Koppelt het aanroepende proces aan de console van het opgegeven proces als een clienttoepassing.

Syntaxis

BOOL WINAPI AttachConsole(
  _In_ DWORD dwProcessId
);

Parameterwaarden

dwProcessId [in]
De identificatie van het proces waarvoor de console gebruikt moet worden. Deze parameter kan een van de volgende waarden zijn.

Waarde Betekenis
Pid Gebruik de console van het opgegeven proces.
ATTACH_PARENT_PROCESS(DWORD)-1 Gebruik de console van het bovenliggende proces van het huidige proces.

Retourwaarde

Als de functie slaagt, is de retourwaarde niet-nul.

Als de functie mislukt, is de retourwaarde nul. Als u uitgebreide foutinformatie wilt ophalen, roept u GetLastError aan.

Opmerkingen

Een proces kan maximaal aan één console worden gekoppeld. Als het aanroepende proces al is gekoppeld aan een console, wordt de geretourneerde foutcode ERROR_ACCESS_DENIED. Als het opgegeven proces geen console heeft, wordt de geretourneerde foutcode ERROR_INVALID_HANDLE. Als het opgegeven proces niet bestaat, wordt de geretourneerde foutcode ERROR_INVALID_PARAMETER.

Een proces kan de functie FreeConsole gebruiken om zichzelf los te koppelen van de console. Als andere processen de console delen, wordt de console niet vernietigd, maar het proces dat FreeConsole wordt genoemd, kan er niet naar verwijzen. Een console wordt gesloten wanneer het laatste proces dat eraan is gekoppeld, wordt beëindigd of FreeConsole aanroept. Nadat een proces FreeConsole aanroept, kan de functie AllocConsole worden aangeroepen om een nieuwe console te maken of AttachConsole te koppelen aan een andere console.

Deze functie is voornamelijk nuttig voor toepassingen die zijn gekoppeld aan /SUBSYSTEM:WINDOWS, wat het besturingssysteem aangeeft dat een console niet nodig is voordat het programma de hoofdmethode uitvoert. In dat geval zijn de standaardgrepen die zijn opgehaald met GetStdHandle waarschijnlijk ongeldig bij het opstarten totdat AttachConsole wordt aangeroepen. De uitzondering hierop is als de toepassing wordt gestart met overname door het bovenliggende proces.

Als u een toepassing wilt compileren die deze functie gebruikt, definieert u _WIN32_WINNT als 0x0501 of later. Zie Windows-headers gebruikenvoor meer informatie.

Behoeften

   
Minimaal ondersteunde client Windows XP [alleen desktop-apps]
Minimaal ondersteunde server Windows Server 2003 [alleen desktop-apps]
Koptekst ConsoleApi.h (via WinCon.h, inclusief Windows.h)
Bibliotheek Kernel32.lib
DLL Kernel32.dll

Zie ook

Consolefuncties

Consoles

AllocConsoleWithOptions

AllocConsole

FreeConsole

GetConsoleProcessList