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++

ReadConsoleOutput

[funkcja] Odczytuje znaki i atrybuty kolorów z bufora wejściowego konsoli.

Składnia

C/C++
#include <windows.h>
BOOL WINAPI ReadConsoleOutput( HANDLE hConsoleOutput, PCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpReadRegion );

Argumenty

ArgumentOpis
hConsoleOutputUchwyt do bufora ekranu konsoli. Uchwyt musi mieć dostęp GENERIC_READ.
lpBufferWskaźnik do określonego bufora pobierającego dane odczytywane z bufora ekranu konsoli. Ten wskaźnik jest traktowany jako początek dwuwymiarowej tablicy struktur CHAR_INFO, których rozmiar jest określony przez argument dwBufferSize. Miejsce w pamięci na ten bufor jest alokowane na stercie dla procesu zajmującego 64 KB pamięci. Maksymalny rozmiar bufora zależy od użycia sterty.
dwBufferSizeRozmiar bufora wskazywanego przez argument lpBuffer, w komórkach znaków.
dwBufferCoordWspółrzędne lewej górnej komórki wskazywanej przez argument lpBuffer.
lpReadRegionWskaźnik do struktury SMALL_RECT. Prostokąt wskazywany przez ten argument określa rozmiar i miejsce zapisu danych odczytywanych z bufora ekranu konsoli. Przy przekazywaniu danych do funkcji na liście argumentów składowe struktury określają współrzędne lewego górnego i prawego dolnego rogu prostokąta bufora ekranu konsoli. Gdy funkcja zakończy swoje działanie, składowe struktury określają aktualnie używany prostokąt.

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

Dane odczytane z komórek w buforze ekranu konsoli prostokąta źródłowego są kopiowane do określonych komórek w buforze wskazywanym przez argument lpBuffer. Jeśli dana komórka znajduje się poza granicami prostokąta bufora o rozmiarach określonych przez argument dwBufferSize, dane nie zostaną skopiowane. Komórki w buforze odpowiadające współrzędnym, które nie znajdują się w zasięgu bufora ekranu konsoli nie są zmieniane (żadne dane bufora ekranu nie są dla nich dostępne do odczytania). Przed zwróceniem wartości przez tą funkcję składowe struktury wskazywanej przez argument lpReadRegion są ustawiane na aktualny prostokąt bufora ekranu, którego komórki były skopiowane do określonego bufora.
Ta funkcja obcina wymiary prostokąta źródłowego do granic bufora ekranu konsoli. Jeśli prostokąt określany przez argument lpReadRegion leży poza granicami bufora ekranu konsoli lub jeśli określony prostokąt jest umieszczony na zewnątrz granic określonego bufora, żadne dane nie zostaną skopiowane. W tym przypadku funkcja zakończy się ze składowymi wskazywanymi przez argument lpReadRegion ustawionymi w ten sposób, że składowa Right jest mniejsza od składowej Left lub składowa Bottom jest mniejsza od składowej Top. Aby określić rozmiar bufora ekranu konsoli, wywołaj funkcję » WinAPIGetConsoleScreenBufferInfo. Ta funkcja nie zmienia pozycji kursora bufora ekranu konsoli. Zawartość bufora ekranu konsoli pozostaje bez zmian.
Ta funkcja używa 8-bitowych znaków Unicode z obecnej strony kodowej konsoli. Domyślna strona kodowa jest stroną kodową OEM. Do zmiany strony kodowej służą funkcje » WinAPISetConsoleCP oraz » WinAPISetConsoleOutputCP. Można również użyć polecenia
chcp
 lub
mode con cp select=id_strony_kodowej
.

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
UNICODEReadConsoleOutputW
ANSIReadConsoleOutputA

Linki zewnętrzne