From 884ec87edf124fc2e70dd2990c6ad03dc61934cf Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Thu, 21 Dec 2023 20:16:00 +0800 Subject: [PATCH] disable quick edit for debug console --- src/Snap.Hutao/Snap.Hutao.Win32/NativeMethods.txt | 3 +++ .../Core/Logging/ConsoleWindowLifeTime.cs | 14 +++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Snap.Hutao/Snap.Hutao.Win32/NativeMethods.txt b/src/Snap.Hutao/Snap.Hutao.Win32/NativeMethods.txt index 688a3f50..8a30582d 100644 --- a/src/Snap.Hutao/Snap.Hutao.Win32/NativeMethods.txt +++ b/src/Snap.Hutao/Snap.Hutao.Win32/NativeMethods.txt @@ -15,12 +15,15 @@ CloseHandle CreateEventW CreateRemoteThread FreeConsole +GetConsoleMode GetModuleHandleW GetProcAddress +GetStdHandle K32EnumProcessModules K32GetModuleBaseNameW K32GetModuleInformation ReadProcessMemory +SetConsoleMode SetConsoleTitle SetEvent VirtualAlloc diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Logging/ConsoleWindowLifeTime.cs b/src/Snap.Hutao/Snap.Hutao/Core/Logging/ConsoleWindowLifeTime.cs index 7869b4ea..c00607ff 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Logging/ConsoleWindowLifeTime.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Logging/ConsoleWindowLifeTime.cs @@ -2,6 +2,8 @@ // Licensed under the MIT license. using Snap.Hutao.Core.Setting; +using Windows.Win32.Foundation; +using Windows.Win32.System.Console; using static Windows.Win32.PInvoke; namespace Snap.Hutao.Core.Logging; @@ -15,7 +17,17 @@ internal sealed class ConsoleWindowLifeTime : IDisposable if (LocalSetting.Get(SettingKeys.IsAllocConsoleDebugModeEnabled, false)) { consoleWindowAllocated = AllocConsole(); - SetConsoleTitle("Snap Hutao Debug Console"); + if (consoleWindowAllocated) + { + HANDLE inputHandle = GetStdHandle(STD_HANDLE.STD_INPUT_HANDLE); + if (GetConsoleMode(inputHandle, out CONSOLE_MODE mode)) + { + mode &= ~CONSOLE_MODE.ENABLE_QUICK_EDIT_MODE; + SetConsoleMode(inputHandle, mode); + } + + SetConsoleTitle("Snap Hutao Debug Console"); + } } }