public void SetConsoleMode(ConsoleInputHandle consoleInputHandle, ConsoleInputModes inputMode) { if (!NativeMethods.SetConsoleMode(consoleInputHandle, inputMode)) { throw Exceptions.Win32(); } }
public void ConstructAndDispose_BufferAndModeSetCorrectly() { const ConsoleInputModes originalInputMode = ConsoleInputModes.EnableInsertMode | ConsoleInputModes.EnableAutoPosition; const string originalTitle = "original console title string"; bool inputSet = false, outputSet = false, outputModeSet = false, titleGet = false; bool inputReset = false, outputReset = false, titleSet = false; using var api = new StubbedNativeCalls { GetConsoleTitle = () => { titleGet = true; return(originalTitle); }, SetConsoleTitleString = t => { t.Should().Be(originalTitle); titleSet = true; } }; api.GetConsoleModeConsoleInputHandle = handle => { inputSet.Should().BeFalse(); handle.Should().Be(api.StdIn); return(originalInputMode); }; api.SetActiveConsoleScreenBufferConsoleOutputHandle = handle => { if (!outputSet) { handle.Should().Be(api.ScreenHandle); outputReset.Should().BeFalse(); outputSet = true; return(true); } outputReset.Should().BeFalse(); handle.Should().Be(api.StdOut); outputReset = true; return(true); }; api.SetConsoleModeConsoleInputHandleConsoleInputModes = (handle, mode) => { handle.Should().Be(api.StdIn); if (!inputSet) { mode.Should() .Be(ConsoleInputModes.EnableWindowInput | ConsoleInputModes.EnableMouseInput | ConsoleInputModes.EnableExtendedFlags); inputSet = true; return; } mode.Should().Be(originalInputMode); inputReset.Should().BeFalse(); inputReset = true; }; api.SetConsoleModeConsoleOutputHandleConsoleOutputModes = (handle, mode) => { handle.Should().Be(api.ScreenHandle); outputModeSet.Should().BeFalse(); mode.Should().Be(ConsoleOutputModes.None); outputModeSet = true; }; using var sut = new ConControls.ConsoleApi.ConsoleController(api); inputSet.Should().BeTrue(); outputSet.Should().BeTrue(); outputModeSet.Should().BeTrue(); titleGet.Should().BeTrue(); sut.Dispose(); inputReset.Should().BeTrue(); outputReset.Should().BeTrue(); titleSet.Should().BeTrue(); }
internal static extern bool SetConsoleMode(ConsoleInputHandle consoleInputHandle, ConsoleInputModes inputMode);
internal static extern bool GetConsoleMode(IntPtr consoleInputHandle, out ConsoleInputModes inputMode);