private static void ExtendedConsoleMouseDemo() { ExtendedConsole.EnableMouseInput(); Console.CursorVisible = false; var buf = new ExtendedConsole.InputRecord[1]; int lx = 0, ly = 0; var myChar = ' '; while (true) { ExtendedConsole.GetConsoleInput(ref buf); if ((buf[0].EventType & 0x0002) == 0x0002) { if ((buf[0].MouseEvent.dwEventFlags & 0x0001) == 0x0001) { lx = buf[0].MouseEvent.dwMousePosition.X; ly = buf[0].MouseEvent.dwMousePosition.Y; } if ((buf[0].MouseEvent.dwButtonState & 0x0001) == 0x0001) { Console.SetCursorPosition(lx, ly); Console.WriteLine(myChar); } Console.SetCursorPosition(0, 0); Console.ForegroundColor = (buf[0].MouseEvent.dwButtonState & 0x0001) == 0x0001 ? ConsoleColor.White : ConsoleColor.DarkGray; Console.WriteLine("Left"); Console.ForegroundColor = (buf[0].MouseEvent.dwButtonState & 0x0004) == 0x0004 ? ConsoleColor.White : ConsoleColor.DarkGray; Console.WriteLine("Middle"); Console.ForegroundColor = (buf[0].MouseEvent.dwButtonState & 0x0002) == 0x0002 ? ConsoleColor.White : ConsoleColor.DarkGray; Console.WriteLine("Right"); Console.ForegroundColor = (buf[0].MouseEvent.dwEventFlags & 0x0002) == 0x0002 ? ConsoleColor.White : ConsoleColor.DarkGray; Console.WriteLine("Double click!"); Console.ForegroundColor = (buf[0].MouseEvent.dwEventFlags & 0x0001) == 0x0001 ? ConsoleColor.White : ConsoleColor.DarkGray; Console.WriteLine("Mouse moved"); Console.ForegroundColor = ConsoleColor.DarkGray; if ((buf[0].MouseEvent.dwEventFlags & 0x0004) == 0x0004) { var s = (short)(buf[0].MouseEvent.dwButtonState >> 16); Console.WriteLine(s > 0 ? "Mousewheeled up " : "Mousewheeled down"); for (var i = 0; i < Math.Abs(s / 120); i++) { if (s > 0) { myChar++; } else { myChar--; } } if (myChar < ' ') { myChar = ' '; } else if (myChar > '~') { myChar = '~'; } } else { Console.WriteLine(); } Console.WriteLine($"Char: '{myChar}'"); } if ((buf[0].EventType & 0x0001) != 0x0001) { continue; } if (buf[0].KeyEvent.wVirtualKeyCode == (ushort)ConsoleKey.Escape) { break; } Console.SetCursorPosition(0, 7); Console.Write($"{(ConsoleKey)buf[0].KeyEvent.wVirtualKeyCode} "); } }