Udostępnij przez


Funkcja AttachConsole

Dołącza proces wywołujący do konsoli określonego procesu jako aplikację kliencką.

Składnia

BOOL WINAPI AttachConsole(
  _In_ DWORD dwProcessId
);

Parametry

dwProcessId [in]
Identyfikator procesu, którego konsola ma być używana. Ten parametr może być jedną z następujących wartości.

Wartość Znaczenie
Pid Użyj konsoli określonego procesu.
ATTACH_PARENT_PROCESS(DWORD)-1 Użyj konsoli elementu nadrzędnego bieżącego procesu.

Wartość zwracana

Jeśli funkcja powiedzie się, zwracana wartość jest niezerowa.

Jeśli funkcja zakończy się niepowodzeniem, zwracana wartość to zero. Aby uzyskać rozszerzone informacje o błędzie, wywołaj metodę GetLastError.

Uwagi

Proces można dołączyć do co najwyżej jednej konsoli. Jeśli proces wywoływania jest już dołączony do konsoli, zwrócony kod błędu jest ERROR_ACCESS_DENIED. Jeśli określony proces nie ma konsoli, zwrócony kod błędu jest ERROR_INVALID_HANDLE. Jeśli określony proces nie istnieje, zwrócony kod błędu jest ERROR_INVALID_PARAMETER.

Proces może użyć funkcji FreeConsole , aby odłączyć się od konsoli. Jeśli inne procesy współdzielą konsolę, konsola nie zostanie zniszczona, ale proces, który wywołał FreeConsole, nie może się do niej odwoływać. Konsola jest zamykana po zakończeniu ostatniego przypisanego procesu lub wywołaniu FreeConsole. Po wywołaniu funkcji FreeConsole, proces może wywołać funkcję AllocConsole w celu utworzenia nowej konsoli lub AttachConsole w celu dołączenia do innej konsoli.

Ta funkcja jest przydatna przede wszystkim w aplikacjach połączonych z /SUBSYSTEM:WINDOWS, co wskazuje systemowi operacyjnemu, że konsola nie jest potrzebna przed uruchomieniem głównej metody programu. W tym przypadku standardowe dojścia pobrane za pomocą GetStdHandle prawdopodobnie będą nieprawidłowe podczas uruchamiania do momentu wywołania AttachConsole. Wyjątkiem jest to, czy aplikacja jest uruchamiana z obsługą dziedziczenia przez jej proces nadrzędny.

Aby skompilować aplikację korzystającą z tej funkcji, zdefiniuj _WIN32_WINNT jako 0x0501 lub nowszą. Aby uzyskać więcej informacji, zobacz Using the Windows Headers.

Wymagania

   
Minimalny obsługiwany klient Windows XP [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer Windows Server 2003 [tylko aplikacje klasyczne]
Nagłówek ConsoleApi.h (za pośrednictwem pliku WinCon.h, zawiera Windows.h)
Biblioteka Kernel32.lib
DLL Kernel32.dll

Zobacz także

Funkcje konsoli

Konsole

AllocConsoleWithOptions

AllocConsole

FreeConsole

GetConsoleProcessList