Biblioteki C/C++
AttachConsole
[funkcja] Podłącza się do istniejącej konsoli innego procesu.Składnia
#include <windows.h>
BOOL WINAPI AttachConsole( DWORD dwProcessId );
Argumenty
Zwracana wartość
Zwraca wartość różną od zera w przypadku sukcesu. W przeciwnym wypadku funkcja zwraca wartość 0.
Aby uzyskać rozszerzone informacje o błędzie, wywołaj funkcję
GetLastError.
Opis szczegółowy
Proces może być powiązany z maksymalnie z jedną konsolą. Jeżeli proces wołający niniejszą funkcję jest już powiązany z konsolą to funkcja
GetLastError zwróci kod błędu
ERROR_ACCESS_DENIED. Jeżeli określony proces nie ma konsoli to kod błędu zostanie ustawiony na
ERROR_INVALID_HANDLE. Jeśli określony proces nie istnieje to zostanie nadany kodem błędu
ERROR_GEN_FAILURE.
Dodatkowe informacje
Proces może użyć funkcji
FreeConsole aby odłączyć od siebie okno konsoli. Jeżeli konsola jest współdzielona przez kilka procesów to konsola nie zostanie zniszczona ale jednocześnie wołający proces nie może już z niej korzystać. Konsola zostanie zamknięta gdy ostatni proces podłączony do konsoli zostanie zakończony bądź wywoła funkcję
FreeConsole. Po wywołaniu funkcji
FreeConsole można wywołać funkcję
AllocConsole w celu utworzenia nowej konsoli bądź wywołać funkcję
AttachConsole by podłączyć się do istniejącej konsoli innego procesu.
Aby skompilować program używający niniejszej funkcji zdefiniuj makro
_WIN32_WINNT z wartością 0x0501 lub większą.
Wymagania
Przykład
#define _WIN32_WINNT 0x0501
#include <windows.h>
int main()
{
if( !AttachConsole( ATTACH_PARENT_PROCESS ) )
{
DWORD errorNo = GetLastError();
switch( errorNo )
{
case ERROR_ACCESS_DENIED:
MessageBoxA( NULL, "Dostęp zabroniony.", "Komunikat", MB_OK );
break;
case ERROR_INVALID_HANDLE:
MessageBoxA( NULL, "Proces nie posiada konsoli.", "Komunikat", MB_OK );
break;
case ERROR_GEN_FAILURE:
MessageBoxA( NULL, "Proces nie posiada rodzica.", "Komunikat", MB_OK );
break;
default:
break;
}
}
return 0;
}
Zagadnienia powiązane
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.