From 0e7be25b236dd499da86117c94e73d7884d02d90 Mon Sep 17 00:00:00 2001 From: HolographicHat Date: Wed, 9 Apr 2025 01:10:21 +0800 Subject: [PATCH] allow copy cocogoat import url --- YaeAchievement/src/Export.cs | 1 + YaeAchievement/src/Program.cs | 10 ++-------- YaeAchievement/src/Utils.cs | 9 +++++++++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/YaeAchievement/src/Export.cs b/YaeAchievement/src/Export.cs index 4cb1a20..3f79bac 100644 --- a/YaeAchievement/src/Export.cs +++ b/YaeAchievement/src/Export.cs @@ -52,6 +52,7 @@ public static class Export { var responseText = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); var responseJson = JsonSerializer.Deserialize(responseText, CocogoatResponseContext.Default.CocogoatResponse)!; var cocogoatUrl = $"https://cocogoat.work/achievement?memo={responseJson.Key}"; + Utils.SetQuickEditMode(true); Console.WriteLine(cocogoatUrl); if (Utils.ShellOpen(cocogoatUrl)) { diff --git a/YaeAchievement/src/Program.cs b/YaeAchievement/src/Program.cs index ec32a64..8e07501 100644 --- a/YaeAchievement/src/Program.cs +++ b/YaeAchievement/src/Program.cs @@ -1,8 +1,5 @@ using System.Runtime.CompilerServices; using System.Text; -using System.Text.Json; -using Windows.Win32; -using Windows.Win32.System.Console; using YaeAchievement.Parsers; using YaeAchievement.res; using YaeAchievement.Utilities; @@ -68,11 +65,8 @@ internal static class Program { } [ModuleInitializer] - internal static unsafe void SetupConsole() { - var handle = Native.GetStdHandle(STD_HANDLE.STD_INPUT_HANDLE); - CONSOLE_MODE mode = default; - Native.GetConsoleMode(handle, &mode); - Native.SetConsoleMode(handle, mode & ~CONSOLE_MODE.ENABLE_QUICK_EDIT_MODE); + internal static void SetupConsole() { + SetQuickEditMode(false); Console.InputEncoding = Console.OutputEncoding = Encoding.UTF8; } diff --git a/YaeAchievement/src/Utils.cs b/YaeAchievement/src/Utils.cs index 67e712d..4d089d0 100644 --- a/YaeAchievement/src/Utils.cs +++ b/YaeAchievement/src/Utils.cs @@ -7,6 +7,7 @@ using System.Net.Sockets; using System.Runtime.InteropServices; using Windows.Win32; using Windows.Win32.Foundation; +using Windows.Win32.System.Console; using Proto; using YaeAchievement.res; using YaeAchievement.Utilities; @@ -214,4 +215,12 @@ public static class Utils { } }); } + + public static unsafe void SetQuickEditMode(bool enable) { + var handle = Native.GetStdHandle(STD_HANDLE.STD_INPUT_HANDLE); + CONSOLE_MODE mode = default; + Native.GetConsoleMode(handle, &mode); + mode = enable ? mode | CONSOLE_MODE.ENABLE_QUICK_EDIT_MODE : mode &~CONSOLE_MODE.ENABLE_QUICK_EDIT_MODE; + Native.SetConsoleMode(handle, mode); + } }