Example #1
0
        static void Main() // static bedeutet das diese methode auf Klassenebene ist, also keinem einzelnen
                           // Objekt direkt zugeordnet ist. Name muss so gewählt sein da windows sonst nicht weiss wo es beginnen
                           // muss
        {
            SafeFileHandle handle = CreateFile("CONOUT$", 0x40000000, 2, IntPtr.Zero, FileMode.Open, 0, IntPtr.Zero);

            if (handle.IsInvalid)
            {
                Console.WriteLine("Konnte kein Handle für die Konsole bekommen :(");
                return;
            }

            SmallRect screenRectangle = new SmallRect(0, 80, 0, 25);
            Coord     topLeft         = new Coord {
                X = 0, Y = 0
            };
            Coord bottomRight = new Coord {
                X = 80, Y = 25
            };


            FPS fpsCounter = new FPS();

            Console.CursorVisible   = false;
            Console.ForegroundColor = ConsoleColor.Yellow;
            TextBox    tbTest = new TextBox(new Point(2, 2), ConsoleColor.Red);
            DVD        dvd    = new DVD();
            ConsoleKey key    = ConsoleKey.Attention;

            do
            {
                fpsCounter.Draw();
                //tbTest.Draw();
                dvd.Draw();

                WriteConsoleOutput(handle, ScreenBuffer, bottomRight, topLeft, ref screenRectangle);

                if (!Console.KeyAvailable)
                {
                    continue;
                }
                // code only processed when a key is down
                key = Console.ReadKey(true).Key;

                switch (key)
                {
                case ConsoleKey.UpArrow:
                    break;

                case ConsoleKey.DownArrow:
                    break;

                case ConsoleKey.Enter:
                    break;

                default:
                    tbTest.ProcessKey(key);
                    break;
                }
            } while (key != ConsoleKey.Escape);
            Console.ResetColor();
        }