pondělí 19. října 2009

.NET a C#: Úprava Konzole (barva, rozměry), atd...

Díval jsem se v Google Analytics (mimochodem výborná služba), přes jaká klíčová slova byl tento blog vyhledán, a jedním z nich bylo i toto: "c# console backgroundcolor". Žádný takový příspěvek tu ale nemám, proto abych předešel zklamání dalších uživatelů, přidávám malý kousek kódu, jak měnit různé vlastnosti konzole.


Ke vlastnostem konzole se dostaneme přes třídu Console ze jmenného prostoru System:
System.Console
Nejdříve vyčistíme konzoli, pokud v ní byl už zapsán nějaký výstup. Tím se vyčistí i buffer. Poté změníme barvu pozadí, barvu písma, titulek konzolového okna apod.
Console.Clear();                              // vycisteni konzole
Console.BackgroundColor = ConsoleColor.Green; // nastaveni barvy pozadi na zelenou
Console.ForegroundColor = ConsoleColor.Black; // nastaveni barvy pisma na cernou
Console.Title = "Moje konzole"; // zmena titulku
Console.WindowHeight = 50; // zmena sirky okna
Console.Beep(1000,1000); // pipnuti PC speakeru na frekvenci
// 1000 hz jednu vterinu
Streamy In, Out a Error
Velice zajímavé jsou vlastnosti In, Out, a Error. Budu teď volně překládat dokumentaci MSDN:
Když spustíte konzolovu aplikaci, operační systém automaticky napojí I/O streamy s konzolí. Aplikace pak může číst uživatelský vstup ze standardního vstupního streamu (In), zapisovat data do standardního výstupního streamu (Out) a zapisovat chybová data (error data) do stand. chybového výstupního streamu (error output stream - Error).
Defaultně je hodnota In vlastnosti System.IO.TextReader objekt a hodnoty vlastností Out a Error System.IO.TextWriter. Nicméně tyto streamy je možné přesměrovat. Pokud chcete přesměrovat stremy, je to možné provést přes metody SetIn, SetOut a SetError.

Okno konzole a buffer konzole
Buffer konzole (screen buffer) je oblast, do které je zapisován text konzole. Je organizován jako obdélníková síť řádků a sloupců, kde každé takové políčko má vlastní barvu pozadí a barvu písma.
Buffer konzole vidíme přes obdélníkévou oblast zvanou okno konzole (console window). Toto okno není konzole sama o sobě, je to okno operačního systému. Okno konzole je také organizováno jako síť políček a jeho velikost je rovna nebo menší jak velikost bufferu. Můžeme s ním pohybovat a tak sledovat různé oblasti bufferu. Pokud je buffer větší než okno, automaticky se objeví posuvníky.

3 komentáře: