Sdílet prostřednictvím


AttachConsole – funkce

Připojí volající proces ke konzole zadaného procesu jako klientskou aplikaci.

Syntaxe

BOOL WINAPI AttachConsole(
  _In_ DWORD dwProcessId
);

Parametry

dwProcessId [in]
Identifikátor procesu, jehož konzola se má použít. Tento parametr může být jednou z následujících hodnot.

Hodnota Význam
Pid Použijte konzolu zadaného procesu.
ATTACH_PARENT_PROCESS(DWORD)-1 Použijte konzolu nadřazeného aktuálního procesu.

Návratová hodnota

Pokud je funkce úspěšná, je návratová hodnota nenulová.

Pokud funkce selže, návratová hodnota je nula. Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError.

Poznámky

Proces lze připojit k maximálně jedné konzole. Pokud je volající proces již připojen ke konzole, vrátí se vrácený kód chyby ERROR_ACCESS_DENIED. Pokud zadaný proces nemá konzolu, vrátí se vrácený kód chyby ERROR_INVALID_HANDLE. Pokud zadaný proces neexistuje, vrátí se vrácený kód chyby ERROR_INVALID_PARAMETER.

Proces může použít funkci FreeConsole k odpojení od konzoly. Pokud konzolu sdílí jiné procesy, konzola se nezničí, ale proces, který se nazývá FreeConsole , na ni nemůže odkazovat. Konzola se zavře, když poslední proces připojený k ní ukončí nebo zavolá FreeConsole. Jakmile proces zavolá FreeConsole, může volat funkci AllocConsole k vytvoření nové konzoly nebo AttachConsole pro připojení k jiné konzole.

Tato funkce je primárně užitečná pro aplikace, které byly propojeny s /SUBSYSTEM:WINDOWS, což znamená, že konzola není nutná před vstupem do hlavní metody programu. V takovém případě budou standardní popisovače načtené pomocí GetStdHandle pravděpodobně při startu neplatné, dokud se nevolá AttachConsole. Výjimkou je, pokud je aplikace spuštěna s popisovačem dědičnosti nadřazeným procesem.

Chcete-li zkompilovat aplikaci, která tuto funkci používá, definujte _WIN32_WINNT jako 0x0501 nebo novější. Další informace naleznete v tématu Použití záhlaví systému Windows.

Požadavky

   
Minimální podporovaný klient Windows XP [pouze desktopové aplikace]
Minimální podporovaný server Windows Server 2003 [pouze desktopové aplikace]
Záhlaví ConsoleApi.h (přes WinCon.h, včetně Windows.h)
Knihovna Kernel32.lib
knihovna DLL Kernel32.dll

Viz také

Funkce konzoly

konzoly

AllocConsoleWithOptions

AllocConsole

FreeConsole

GetConsoleProcessList