Ejemplo n.º 1
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);
        }
        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);
        }