From 9fb2da41cd58c0ad9898c906db200e06fee67721 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Mon, 30 Jan 2023 16:22:54 +0800 Subject: [PATCH] store migration --- src/Snap.Hutao/Snap.Hutao.sln | 12 ++++----- src/Snap.Hutao/Snap.Hutao/.filenesting.json | 7 ++--- .../Snap.Hutao/Model/Entity/GameAccount.cs | 1 - .../Snap.Hutao/Package.StoreAssociation.xml | 21 +++++++++++++++ .../Snap.Hutao/Package.appxmanifest | 18 +++++-------- .../Snap.Hutao/Service/Game/GameService.cs | 4 +-- ...tRegistryInterop.cs => RegistryInterop.cs} | 26 ++++++++++++++++--- src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj | 14 +++++----- 8 files changed, 70 insertions(+), 33 deletions(-) create mode 100644 src/Snap.Hutao/Snap.Hutao/Package.StoreAssociation.xml rename src/Snap.Hutao/Snap.Hutao/Service/Game/{GameAccountRegistryInterop.cs => RegistryInterop.cs} (56%) diff --git a/src/Snap.Hutao/Snap.Hutao.sln b/src/Snap.Hutao/Snap.Hutao.sln index b6918dc5..08ffc52c 100644 --- a/src/Snap.Hutao/Snap.Hutao.sln +++ b/src/Snap.Hutao/Snap.Hutao.sln @@ -50,8 +50,8 @@ Global {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|x86.ActiveCfg = Release|x86 {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|x86.Build.0 = Release|x86 {AAAB7CF0-F299-49B8-BDB4-4C320B3EC2C7}.Release|x86.Deploy.0 = Release|x86 - {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Debug|Any CPU.ActiveCfg = Debug|x64 + {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Debug|Any CPU.Build.0 = Debug|x64 {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Debug|arm64.ActiveCfg = Debug|Any CPU {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Debug|arm64.Build.0 = Debug|Any CPU {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Debug|x64.ActiveCfg = Debug|x64 @@ -66,8 +66,8 @@ Global {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x64.Build.0 = Release|x64 {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x86.ActiveCfg = Release|Any CPU {8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x86.Build.0 = Release|Any CPU - {CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|Any CPU.ActiveCfg = Debug|x64 + {CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|Any CPU.Build.0 = Debug|x64 {CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|arm64.ActiveCfg = Debug|Any CPU {CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|arm64.Build.0 = Debug|Any CPU {CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|x64.ActiveCfg = Debug|x64 @@ -78,8 +78,8 @@ Global {CEC01691-F65E-4874-9AE2-F571369A7631}.Release|Any CPU.Build.0 = Release|Any CPU {CEC01691-F65E-4874-9AE2-F571369A7631}.Release|arm64.ActiveCfg = Release|Any CPU {CEC01691-F65E-4874-9AE2-F571369A7631}.Release|arm64.Build.0 = Release|Any CPU - {CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x64.ActiveCfg = Release|Any CPU - {CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x64.Build.0 = Release|Any CPU + {CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x64.ActiveCfg = Release|x64 + {CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x64.Build.0 = Release|x64 {CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x86.ActiveCfg = Release|Any CPU {CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection diff --git a/src/Snap.Hutao/Snap.Hutao/.filenesting.json b/src/Snap.Hutao/Snap.Hutao/.filenesting.json index 4018919b..8c51f689 100644 --- a/src/Snap.Hutao/Snap.Hutao/.filenesting.json +++ b/src/Snap.Hutao/Snap.Hutao/.filenesting.json @@ -19,11 +19,12 @@ }, "fileToFile": { "add": { + ".filenesting.json": [ "App.xaml.cs" ], "app.manifest": [ "App.xaml.cs" ], "Package.appxmanifest": [ "App.xaml.cs" ], - "GlobalUsing.cs": [ "Program.cs" ], - ".filenesting.json": [ "Program.cs" ], - ".editorconfig": [ "Program.cs" ] + "Package.StoreAssociation.xml": [ "App.xaml.cs" ], + ".editorconfig": [ "Program.cs" ], + "GlobalUsing.cs": [ "Program.cs" ] } } } diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Entity/GameAccount.cs b/src/Snap.Hutao/Snap.Hutao/Model/Entity/GameAccount.cs index b587a07b..a309678a 100644 --- a/src/Snap.Hutao/Snap.Hutao/Model/Entity/GameAccount.cs +++ b/src/Snap.Hutao/Snap.Hutao/Model/Entity/GameAccount.cs @@ -40,7 +40,6 @@ public class GameAccount : INotifyPropertyChanged /// /// [MIHOYOSDK_ADL_PROD_CN_h3123967166] - /// see /// public string MihoyoSDK { get; set; } = default!; diff --git a/src/Snap.Hutao/Snap.Hutao/Package.StoreAssociation.xml b/src/Snap.Hutao/Snap.Hutao/Package.StoreAssociation.xml new file mode 100644 index 00000000..1386cb9a --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Package.StoreAssociation.xml @@ -0,0 +1,21 @@ + + + CN=35C8E923-85DF-49A7-9172-B39DC6312C52 + DGP Studio + MSA + http://www.w3.org/2001/04/xmlenc#sha256 + + + + + 60568DGPStudio.SnapHutao + + Snap Hutao + 胡桃工具箱 + + + + 60568DGPStudio.SnapGenshinResin + + + \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest b/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest index babe8694..55dcece4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest +++ b/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest @@ -4,26 +4,23 @@ xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10" - xmlns:desktop6="http://schemas.microsoft.com/appx/manifest/desktop/windows10/6" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" - IgnorableNamespaces="com uap desktop desktop6 rescap"> + xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" + IgnorableNamespaces="com uap desktop rescap mp"> + Name="60568DGPStudio.SnapHutao" + Publisher="CN=35C8E923-85DF-49A7-9172-B39DC6312C52" + Version="1.4.11.0" /> - 胡桃 + Snap Hutao DGP Studio Assets\StoreLogo.png - - disabled - @@ -36,7 +33,7 @@ Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$"> - diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/GameService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/GameService.cs index da7a3bbc..2e503f9b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/GameService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/GameService.cs @@ -377,7 +377,7 @@ internal class GameService : IGameService { Must.NotNull(gameAccounts!); - string? registrySdk = GameAccountRegistryInterop.Get(); + string? registrySdk = RegistryInterop.Get(); if (!string.IsNullOrEmpty(registrySdk)) { GameAccount? account; @@ -422,7 +422,7 @@ internal class GameService : IGameService /// public bool SetGameAccount(GameAccount account) { - return GameAccountRegistryInterop.Set(account); + return RegistryInterop.Set(account); } /// diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/GameAccountRegistryInterop.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/RegistryInterop.cs similarity index 56% rename from src/Snap.Hutao/Snap.Hutao/Service/Game/GameAccountRegistryInterop.cs rename to src/Snap.Hutao/Snap.Hutao/Service/Game/RegistryInterop.cs index 5759a38b..dbc7a96c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/GameAccountRegistryInterop.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/RegistryInterop.cs @@ -3,14 +3,15 @@ using Microsoft.Win32; using Snap.Hutao.Model.Entity; +using System.Diagnostics; using System.Text; namespace Snap.Hutao.Service.Game; /// -/// 定义了对注册表的操作 +/// 注册表操作 /// -internal static class GameAccountRegistryInterop +internal static class RegistryInterop { private const string GenshinKey = @"HKEY_CURRENT_USER\Software\miHoYo\原神"; private const string SdkKey = "MIHOYOSDK_ADL_PROD_CN_h3123967166"; @@ -24,8 +25,25 @@ internal static class GameAccountRegistryInterop { if (account != null) { - Registry.SetValue(GenshinKey, SdkKey, Encoding.UTF8.GetBytes(account.MihoyoSDK)); - return true; + string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(account.MihoyoSDK)); + string path = $"HKCU:{GenshinKey[@"HKEY_CURRENT_USER\".Length..]}"; + string command = $""" + $value = [Convert]::FromBase64String('{base64}'); + Set-ItemProperty -Path '{path}' -Name '{SdkKey}' -Value $value -Force; + """; + + ProcessStartInfo startInfo = new() + { + Arguments = command, + CreateNoWindow = true, + FileName = "PowerShell", + }; + + Process.Start(startInfo)?.WaitForExit(); + if (Get() == account.MihoyoSDK) + { + return true; + } } return false; diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj index 0f6f2e3e..e914cbcc 100644 --- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj +++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj @@ -20,12 +20,12 @@ zh-CN False True - F8C2255969BEA4A681CED102771BF807856AEC02 + D15C4474363D2AF157C5CC6F230C7BFF2CF19B25 SHA256 - False - True - True - Never + True + False + False + Always 0 Snap.Hutao.Program $(DefineConstants);DISABLE_XAML_GENERATED_MAIN;DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION;DISABLE_XAML_GENERATED_BINDING_DEBUG_OUTPUT @@ -33,6 +33,8 @@ true embedded Assets\Logo.ico + True + x86|x64 @@ -177,7 +179,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + all