Функция AttachConsole

Присоединяет вызывающий процесс к консоли указанного процесса в качестве клиентского приложения.

Синтаксис

BOOL WINAPI AttachConsole(
  _In_ DWORD dwProcessId
);

Параметры

dwProcessId [in]
Идентификатор процесса, консоль которого должна использоваться. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
pid Используйте консоль указанного процесса.
ATTACH_PARENT_PROCESS(DWORD)-1 Используйте консоль родительского элемента текущего процесса.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Замечания

Процесс может быть присоединен к одной консоли. Если вызывающий процесс уже подключен к консоли, возвращается код ошибки ERROR_ACCESS_DENIED. Если указанный процесс не имеет консоли, возвращается код ошибки ERROR_INVALID_HANDLE. Если указанный процесс не существует, возвращается код ошибки ERROR_INVALID_PARAMETER.

Процесс может использовать функцию FreeConsole для отсоединения от консоли. Если другие процессы совместно используют консоль, консоль не уничтожается, но процесс, который называется FreeConsole , не может ссылаться на него. Консоль закрывается, когда последний процесс, подключенный к нему, завершается или вызывает FreeConsole. После вызова FreeConsole процесс может вызвать функцию AllocConsole, чтобы создать новую консоль или AttachConsole, чтобы подключиться к другой консоли.

Эта функция в первую очередь полезна для приложений, связанных с /SUBSYSTEM:WINDOWS, что подразумевает, что консоль не требуется перед вводом основного метода программы. В этом случае стандартные дескрипторы, полученные с помощью GetStdHandle, скорее всего, будут недопустимыми при запуске до вызова AttachConsole. Исключение заключается в том, что приложение запускается с наследованием по родительскому процессу.

Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0501 или более поздней версии. Дополнительные сведения см. в разделе "Использование заголовков Windows".

Requirements

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхний колонтитул ConsoleApi.h (через WinCon.h, включая Windows.h)
Библиотека Kernel32.lib
DLL-библиотеки Kernel32.dll

См. также

Функции консоли

Консоли

AllocConsole

FreeConsole

GetConsoleProcessList