Exemplo n.º 1
0
 // private static extern bool SetConsoleScreenBufferInfoEx(IntPtr hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO_EX csbe);
 private static extern bool SetConsoleScreenBufferInfoEx(IntPtr hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO_EX_ARRAY csbe);
Exemplo n.º 2
0
        public static int SetColor(ConsoleColor colorToSet, COLORREF targetColor)
        {
            // CONSOLE_SCREEN_BUFFER_INFO_EX csbe = new CONSOLE_SCREEN_BUFFER_INFO_EX();
            CONSOLE_SCREEN_BUFFER_INFO_EX_ARRAY csbe = new CONSOLE_SCREEN_BUFFER_INFO_EX_ARRAY();

            csbe.cbSize = (int)Marshal.SizeOf(csbe);                    // 96 = 0x60


            IntPtr hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);    // 7

            if (hConsoleOutput == INVALID_HANDLE_VALUE)
            {
                return(Marshal.GetLastWin32Error());
            }
            bool brc = GetConsoleScreenBufferInfoEx(hConsoleOutput, ref csbe);

            if (!brc)
            {
                return(Marshal.GetLastWin32Error());
            }

            csbe.colors[(int)colorToSet] = targetColor;

            /*
             * switch (colorToSet)
             * {
             *  case ConsoleColor.Black:
             *      csbe.black = targetColor;
             *      break;
             *  case ConsoleColor.DarkBlue:
             *      csbe.darkBlue = targetColor;
             *      break;
             *  case ConsoleColor.DarkGreen:
             *      csbe.darkGreen = targetColor;
             *      break;
             *  case ConsoleColor.DarkCyan:
             *      csbe.darkCyan = targetColor;
             *      break;
             *  case ConsoleColor.DarkRed:
             *      csbe.darkRed = targetColor;
             *      break;
             *  case ConsoleColor.DarkMagenta:
             *      csbe.darkMagenta = targetColor;
             *      break;
             *  case ConsoleColor.DarkYellow:
             *      csbe.darkYellow = targetColor;
             *      break;
             *  case ConsoleColor.Gray:
             *      csbe.gray = targetColor;
             *      break;
             *  case ConsoleColor.DarkGray:
             *      csbe.darkGray = targetColor;
             *      break;
             *  case ConsoleColor.Blue:
             *      csbe.blue = targetColor;
             *      break;
             *  case ConsoleColor.Green:
             *      csbe.green = targetColor;
             *      break;
             *  case ConsoleColor.Cyan:
             *      csbe.cyan = targetColor;
             *      break;
             *  case ConsoleColor.Red:
             *      csbe.red = targetColor;
             *      break;
             *  case ConsoleColor.Magenta:
             *      csbe.magenta = targetColor;
             *      break;
             *  case ConsoleColor.Yellow:
             *      csbe.yellow = targetColor;
             *      break;
             *  case ConsoleColor.White:
             *      csbe.white = targetColor;
             *      break;
             * }
             */

            ++csbe.srWindow.Bottom;
            ++csbe.srWindow.Right;
            brc = SetConsoleScreenBufferInfoEx(hConsoleOutput, ref csbe);
            if (!brc)
            {
                return(Marshal.GetLastWin32Error());
            }
            return(0);
        }
 // private static extern bool SetConsoleScreenBufferInfoEx(IntPtr hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO_EX csbe);
 internal static extern Boolean SetConsoleScreenBufferInfoEx(IntPtr hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO_EX_ARRAY csbe);