diff --git a/FastGithub/ConsoleUtil.cs b/FastGithub/ConsoleUtil.cs new file mode 100644 index 0000000..d24f8d5 --- /dev/null +++ b/FastGithub/ConsoleUtil.cs @@ -0,0 +1,44 @@ +using System; +using System.Runtime.InteropServices; +using System.Runtime.Versioning; + +namespace FastGithub +{ + static class ConsoleUtil + { + private const uint ENABLE_QUICK_EDIT = 0x0040; + + private const int STD_INPUT_HANDLE = -10; + + [DllImport("kernel32.dll", SetLastError = true)] + [SupportedOSPlatform("windows")] + private static extern IntPtr GetStdHandle(int nStdHandle); + + [DllImport("kernel32.dll", SetLastError = true)] + [SupportedOSPlatform("windows")] + private static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode); + + [DllImport("kernel32.dll", SetLastError = true)] + [SupportedOSPlatform("windows")] + private static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode); + + /// + /// 禁用快速编辑模式 + /// + /// + public static bool DisableQuickEdit() + { + if (OperatingSystem.IsWindows()) + { + var hwnd = GetStdHandle(STD_INPUT_HANDLE); + if (GetConsoleMode(hwnd, out uint mode)) + { + mode &= ~ENABLE_QUICK_EDIT; + return SetConsoleMode(hwnd, mode); + } + } + + return false; + } + } +} diff --git a/FastGithub/Program.cs b/FastGithub/Program.cs index 94b4b87..bb94608 100644 --- a/FastGithub/Program.cs +++ b/FastGithub/Program.cs @@ -17,6 +17,7 @@ namespace FastGithub /// public static void Main(string[] args) { + ConsoleUtil.DisableQuickEdit(); CreateHostBuilder(args).Build().Run(); }