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