Exemplo n.º 1
0
        protected void SetupBuffer(IntPtr buffer, ref CONSOLE_FONT_INFOEX fontInfo, ref CONSOLE_MODE_OUTPUT outLast)
        {
            // Console mode
            GetConsoleModeOut(buffer, out outLast);

            CONSOLE_MODE_OUTPUT mode = outLast | CONSOLE_MODE_OUTPUT.ENABLE_VIRTUAL_TERMINAL_PROCESSING;

            SetConsoleMode(buffer, (uint)mode);

            // Font
            CONSOLE_FONT_INFOEX lastFont = new CONSOLE_FONT_INFOEX();

            GetCurrentConsoleFontEx(buffer, false, ref lastFont);

            if (fontInfo.Equals(default(CONSOLE_FONT_INFOEX)))
            {
                fontInfo = lastFont;
                Info.SetFont(lastFont);
            }

            CONSOLE_FONT_INFOEX newFont = new CONSOLE_FONT_INFOEX();

            newFont.cbSize       = (uint)Marshal.SizeOf(newFont);
            newFont.FaceName     = fontInfo.FaceName;
            newFont.dwFontSize.X = fontInfo.dwFontSize.X;
            newFont.dwFontSize.Y = fontInfo.dwFontSize.Y;

            SetCurrentConsoleFontEx(buffer, false, ref newFont);

            SetConsoleScreenBufferSize(buffer, Info.size);
        }
Exemplo n.º 2
0
        public override void Disable()
        {
            CONSOLE_FONT_INFOEX lastFont = Info.font;
            CONSOLE_MODE_OUTPUT lastMode = (CONSOLE_MODE_OUTPUT)Buffer.lastMode;

            SetupBuffer(Buffer.ptr, ref lastFont, ref lastMode);

            SetConsoleMode(Buffer.ptr, Buffer.lastMode);
        }
Exemplo n.º 3
0
        public override void Enable()
        {
            GetStdOut(out IntPtr bufferPtr);

            CONSOLE_FONT_INFOEX bufferFont = Info.font;
            CONSOLE_MODE_OUTPUT lastMode   = 0;

            SetupBuffer(bufferPtr, ref bufferFont, ref lastMode);

            Buffer = new OutputHandlerBufferInfo(bufferPtr, (uint)lastMode);
        }
Exemplo n.º 4
0
        protected bool GetConsoleModeOut(IntPtr hConsoleHandle, out CONSOLE_MODE_OUTPUT mode)
        {
            if (!GetConsoleMode(hConsoleHandle, out uint lpMode))
            {
                mode = 0;
                return(false);
            }

            mode = (CONSOLE_MODE_OUTPUT)lpMode;
            return(true);
        }
        public override void Disable()
        {
            OutputHandlerBufferInfo bufferInfo = Buffers[0];

            CONSOLE_FONT_INFOEX lastFont = Info.font;
            CONSOLE_MODE_OUTPUT lastMode = 0;

            SetupBuffer(bufferInfo.ptr, ref lastFont, ref lastMode);
            SetConsoleActiveScreenBuffer(bufferInfo.ptr);

            SetConsoleMode(bufferInfo.ptr, bufferInfo.lastMode);

            Buffers       = null;
            WritingBuffer = -1;
        }
        public override void Enable()
        {
            Buffers = new OutputHandlerBufferInfo[BUFFER_COUNT];
            for (int i = 0; i < BUFFER_COUNT; i++)
            {
                IntPtr bufferPtr = CreateConsoleScreenBuffer(
                    (uint)(BUFFER_ACCESS_MODE.GENERIC_WRITE | BUFFER_ACCESS_MODE.GENERIC_READ),
                    (uint)(BUFFER_SHARE_MODE.FILE_SHARE_WRITE | BUFFER_SHARE_MODE.FILE_SHARE_READ),
                    new IntPtr(0), 1, new IntPtr(0));

                CONSOLE_FONT_INFOEX bufferFont = Info.font;
                CONSOLE_MODE_OUTPUT lastMode   = 0;

                SetupBuffer(bufferPtr, ref bufferFont, ref lastMode);

                Buffers[i] = new OutputHandlerBufferInfo(bufferPtr, (uint)lastMode);
            }

            WritingBuffer = 1;
            SetConsoleActiveScreenBuffer(Buffers[0].ptr);
        }