Пример #1
0
 public void SetConsoleMode(ConsoleInputHandle consoleInputHandle, ConsoleInputModes inputMode)
 {
     if (!NativeMethods.SetConsoleMode(consoleInputHandle, inputMode))
     {
         throw Exceptions.Win32();
     }
 }
Пример #2
0
        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();
        }
Пример #3
0
 internal static extern bool SetConsoleMode(ConsoleInputHandle consoleInputHandle, ConsoleInputModes inputMode);
Пример #4
0
 internal static extern bool GetConsoleMode(IntPtr consoleInputHandle, out ConsoleInputModes inputMode);