Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: jankowalski25
Biblioteki C/C++

GetConsoleMode

[funkcja] Pobiera obecny tryb wejściowy dla bufora wejściowego konsoli lub obecny tryb wyjściowy dla bufora ekranu konsoli.

Składnia

C/C++
#include <windows.h>

BOOL WINAPI GetConsoleMode( HANDLE hConsoleHandle, LPDWORD lpMode );

Argumenty

ArgumentOpis
hConsoleHandleUchwyt do bufora wejściowego konsoli lub bufora ekranu konsoli. Uchwyt musi mieć dostęp GENERIC_READ.
lpModeWskaźnik do zmiennej pobierającej obecny tryb określonego bufora. Jeśli wartość argumentu hConsoleHandle jest uchwytem do wejścia, to wartość tego argumentu może być jedną z poniższych stałych:
NazwaWartośćZnaczenie
ENABLE_ECHO_INPUT0x0004Znaki odczytywane przez funkcję ReadFile lub ReadConsole są zapisywane do aktywnego bufora ekranu podczas odczytywania. Ten tryb może być używany tylko z trybem ENABLE_LINE_INPUT.
ENABLE_INSERT_MODE0x0020Tekst wpisywany w okno konsoli będzie wstawiany w obecnej pozycji kursora i cały tekst poniżej tego miejsca nie będzie nadpisywany. Jeśli ten tryb jest wyłączony, cały wpisywany tekst będzie nadpisywany.
ENABLE_LINE_INPUT0x0002Funkcja ReadFile lub ReadConsole się zakończy tylko, gdy zostanie podany znak CR (carriage return). Jeśli ten tryb jest wyłączony, funkcja zakończy się tylko, gdy jeden lub więcej znaków będzie dostępny.
ENABLE_MOUSE_INPUT0x0010Jeśli wskaźnik do myszy znajduje się w ramce okna konsoli i okno ma fokus klawiatury, zdarzenia myszy tworzone przez poruszanie i naciskanie jej przycisków są umieszczone w buforze wejściowym. Jeśli ten tryb jest włączony, to te zdarzenia są odrzucane przez funkcję ReadFile oraz ReadConsole.
ENABLE_PROCESSED_INPUT0x0001CTRL+C jest przetwarzany przez system i nie jest umieszczany w buforze wejściowym. Jeśli bufor wejściowy odczytuje dane przez funkcję ReadFile lub ReadConsole, inne klawisze sterujące są przetwarzane przez system i nie są zwracane w buforze funkcji ReadFile lub ReadConsole. Jeśli tryb ENABLE_LINE_INPUT jest również włączony, to znaki backspace, CR (carriage return) i LF (line feed) są obsługiwane przez system.
ENABLE_QUICK_EDIT_MODE0x0040Ta flaga pozwala użytkownikowi na używanie myszy do zaznaczania i edycji tekstu.
ENABLE_WINDOW_INPUT0x0008Interakcje użytkownika zmieniające rozmiar bufora ekranu konsoli są zapisywane w buforze wejściowym konsoli. Informacje o tych zdarzeniach mogą być odczytane z bufora wejściowego za pomocą funkcji ReadConsoleInput, ale nie przez funkcję ReadFile lub ReadConsole.
Kiedy konsola jest tworzona, wszystkie powyższe tryby wejścia (z wyjątkiem ENABLE_WINDOW_INPUT) są domyślnie włączone. Jeśli wartość argumentu hConsoleHandle jest uchwytem do bufora ekranu, wartość tego argumentu może przyjmować następujące wartości:
NazwaWartośćZnaczenie
ENABLE_PROCESSED_OUTPUT0x0001Znaki zapisywane przez funkcję » WinAPIWriteFile albo WriteConsole lub powtórzone przez funkcję ReadFile lub ReadConsole są przetwarzane dla sterujących sekwencji ASCII podejmujących odpowiednie działania. Znaki backspace, tab (tabulator), bell, CR (carriage return) oraz LF (line feed) są przetwarzane.
ENABLE_WRAP_AT_EOL_OUTPUT0x0002Podczas zapisywania danych przy użyciu funkcji » WinAPIWriteFile albo WriteConsole lub powtórzonych przez ReadFile albo ReadConsole kursor przemieszcza się na początek następnego wiersza, kiedy osiągnie koniec obecnego wiersza. To powoduje, że wiersze wyświetlane w oknie konsoli przesuwają się automatycznie do góry, kiedy kursor przekroczy ostatni wiersz w oknie. To również powoduje przesuwanie się treści bufora ekranu konsoli (odrzucając górny wiersz bufora ekranu konsoli), kiedy kursor przekroczy ostatni wiersz bufora ekranu konsoli. Jeśli ten tryb jest wyłączony, ostatni znak w wierszu jest nadpisywany przez następne znaki.
 Kiedy bufor ekranu jest tworzony, oba powyższe tryby wyjściowe są domyślnie włączone.

Zwracana wartość

Jeśli nie wystąpią błędy, zwracana wartość jest niezerowa, inaczej 0. Aby uzyskać szczegółowe informacje o błędzie, wywołaj funkcję » WinAPIGetLastError.

Dodatkowe informacje

Konsola składa się z bufora wejściowego oraz z buforów ekranu. Tryb bufora konsoli określa, jak konsola zachowuje się podczas odczytywania i zapisywania danych. Jedno ustawienie flag jest używane z uchwytami wejścia, natomiast inne ustawienia są używane do uchwytów buforów ekranu (wyjścia). Ustawienie trybu wyjścia jednego bufora ekranu nie zmienia trybu wyjścia innych buforów ekranu. Tryby ENABLE_LINE_INPUT i ENABLE_ECHO_INPUT powodują przetwarzanie używane w funkcji ReadFile albo ReadConsole do odczytywania danych z buforu wejścia konsoli. Podobnie tryb ENABLE_PROCESSED_INPUT jest głównie wykorzystywany w funkcji ReadFile lub ReadConsole. Oprócz tego ten tryb określa, czy znak CTRL+C jest wstawiany do bufora wejściowego (do odczytania przez funkcję ReadConsoleInput), czy jest przekazywany do funkcji zdefiniowanej przez programistę. Tryby ENABLE_WINDOW_INPUT oraz ENABLE_MOUSE_INPUT określają, czy interakcje użytkownika obejmujące zmianę rozmiaru okna i akcje związane z użyciem myszy są przekazywane do bufora wejściowego, czy mają być pomijane. Te zdarzenia mogą być odczytane przez funkcję ReadConsoleInput, ale są zawsze przechwytywane przez funkcję ReadFile lub ReadConsole. Tryby ENABLE_PROCESSED_OUTPUT i ENABLE_WRAP_AT_EOL_OUTPUT powodują przetwarzanie z użyciem funkcji ReadConsole, » WinAPIWriteFile lub WriteConsole. Aby zmienić tryb wejścia/wyjścia konsoli, wywołaj funkcję SetConsoleMode.

Wymagania

Minimalny system klientaWindows 2000 Professional (tylko aplikacje biurowe).
Minimalny system serweraWindows 2000 Server (tylko aplikacje biurowe).
NagłówekWincon.h (dołącza Windows.h)
BibliotekaKernel32.lib
DLLKernel32.dll

Linki zewnętrzne