From 839343cebfa36047ca879efba68aebfa2878e3de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Mon, 23 Dec 2024 23:32:25 +0800 Subject: [PATCH] SysParams --- .../Core/Recorder/KeyMouseRecorderJsonLine.cs | 3 ++- .../Core/Recorder/Model/KeyMouseScriptInfo.cs | 2 ++ .../Core/Recorder/Model/RecordContext.cs | 10 ++++++++ .../Core/Recorder/Model/SysParams.cs | 24 +++++++++++++++++++ .../Pages/KeyMouseRecordPageViewModel.cs | 3 +++ 5 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 BetterGenshinImpact/Core/Recorder/Model/RecordContext.cs create mode 100644 BetterGenshinImpact/Core/Recorder/Model/SysParams.cs diff --git a/BetterGenshinImpact/Core/Recorder/KeyMouseRecorderJsonLine.cs b/BetterGenshinImpact/Core/Recorder/KeyMouseRecorderJsonLine.cs index e4edfdcc..dfbd558f 100644 --- a/BetterGenshinImpact/Core/Recorder/KeyMouseRecorderJsonLine.cs +++ b/BetterGenshinImpact/Core/Recorder/KeyMouseRecorderJsonLine.cs @@ -66,7 +66,8 @@ public class KeyMouseRecorderJsonLine Height = rect.Height, RecordDpi = TaskContext.Instance().DpiScale, StartTime = $"{startTime:yyyy-MM-dd HH:mm:ss:ffff}", - StartTimeUnixTimestamp = (startTime - new DateTime(1970, 1, 1)).TotalNanoseconds.ToString("F0") + StartTimeUnixTimestamp = (startTime - new DateTime(1970, 1, 1)).TotalNanoseconds.ToString("F0"), + SysParams = RecordContext.Instance.SysParams }; var infoJson = JsonSerializer.Serialize(Info, JsonOptions); File.WriteAllText(Path.Combine(path, $"{folderName}.json"), infoJson); diff --git a/BetterGenshinImpact/Core/Recorder/Model/KeyMouseScriptInfo.cs b/BetterGenshinImpact/Core/Recorder/Model/KeyMouseScriptInfo.cs index 058f08df..b48031bc 100644 --- a/BetterGenshinImpact/Core/Recorder/Model/KeyMouseScriptInfo.cs +++ b/BetterGenshinImpact/Core/Recorder/Model/KeyMouseScriptInfo.cs @@ -28,4 +28,6 @@ public class KeyMouseScriptInfo public string StartTime { get; set; } = string.Empty; public string StartTimeUnixTimestamp { get; set; } = string.Empty; + + public SysParams? SysParams { get; set; } } diff --git a/BetterGenshinImpact/Core/Recorder/Model/RecordContext.cs b/BetterGenshinImpact/Core/Recorder/Model/RecordContext.cs new file mode 100644 index 00000000..0d85b8ca --- /dev/null +++ b/BetterGenshinImpact/Core/Recorder/Model/RecordContext.cs @@ -0,0 +1,10 @@ +using BetterGenshinImpact.Model; + +namespace BetterGenshinImpact.Core.Recorder.Model; + +public class RecordContext : Singleton +{ + + public SysParams SysParams { get; set; } = new(); + +} \ No newline at end of file diff --git a/BetterGenshinImpact/Core/Recorder/Model/SysParams.cs b/BetterGenshinImpact/Core/Recorder/Model/SysParams.cs new file mode 100644 index 00000000..200de620 --- /dev/null +++ b/BetterGenshinImpact/Core/Recorder/Model/SysParams.cs @@ -0,0 +1,24 @@ +using BetterGenshinImpact.Helpers; + +namespace BetterGenshinImpact.Core.Recorder.Model; + +public class SysParams +{ + /// + /// 提高指针精确度 是否启用 + /// + public bool EnhancePointerPrecision { get; set; } + + public SysParams() + { + var (mouseThreshold1, mouseThreshold2, mouseThreshold3) = EnvironmentUtil.GetMouse(); + if (mouseThreshold3 > 0) + { + EnhancePointerPrecision = true; + } + else + { + EnhancePointerPrecision = false; + } + } +} \ No newline at end of file diff --git a/BetterGenshinImpact/ViewModel/Pages/KeyMouseRecordPageViewModel.cs b/BetterGenshinImpact/ViewModel/Pages/KeyMouseRecordPageViewModel.cs index d3875124..e5937908 100644 --- a/BetterGenshinImpact/ViewModel/Pages/KeyMouseRecordPageViewModel.cs +++ b/BetterGenshinImpact/ViewModel/Pages/KeyMouseRecordPageViewModel.cs @@ -17,6 +17,7 @@ using System.IO; using System.Linq; using System.Threading.Tasks; using System.Windows; +using BetterGenshinImpact.Core.Recorder.Model; using BetterGenshinImpact.Helpers; using Wpf.Ui; using Wpf.Ui.Controls; @@ -90,6 +91,8 @@ public partial class KeyMouseRecordPageViewModel : ObservableObject, INavigation [RelayCommand] public async Task OnStartRecord() { + var s = RecordContext.Instance.SysParams; // 提前实例化,避免延迟 + Debug.WriteLine(s.EnhancePointerPrecision); if (!TaskContext.Instance().IsInitialized) { Toast.Warning("请先在启动页,启动截图器再使用本功能");