diff --git a/src/ST.Client.CommandLine/CommandLineHost.cs b/src/ST.Client.CommandLine/CommandLineHost.cs index 92a5c48af..48a4611d5 100644 --- a/src/ST.Client.CommandLine/CommandLineHost.cs +++ b/src/ST.Client.CommandLine/CommandLineHost.cs @@ -175,6 +175,8 @@ public abstract class CommandLineHost : IDisposable var currentuser = users.Where(s => s.AccountName == account).FirstOrDefault(); + await steamService.ShutdownSteam(); + if (currentuser != null) { currentuser.MostRecent = true; @@ -182,7 +184,6 @@ public abstract class CommandLineHost : IDisposable steamService.SetCurrentUser(account); } - await steamService.ShutdownSteam(); steamService.StartSteam(); } }); diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/SteamAccountPage/ShareManageWindow.axaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/SteamAccountPage/ShareManageWindow.axaml index 6a88ff24a..3ea416b97 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/SteamAccountPage/ShareManageWindow.axaml +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/SteamAccountPage/ShareManageWindow.axaml @@ -22,7 +22,7 @@ x:CompileBindings="True"> - @@ -180,6 +180,7 @@ HorizontalAlignment="Stretch" MaxWidth="200" Command="{ReflectionBinding #u.DataContext.SetFirstButton_Click}" + IsEnabled="{Binding !Disable}" CommandParameter="{Binding}"> @@ -189,6 +190,7 @@ HorizontalAlignment="Stretch" MaxWidth="200" Command="{ReflectionBinding #u.DataContext.UpButton_Click}" + IsEnabled="{Binding !Disable}" CommandParameter="{Binding}"> @@ -198,6 +200,7 @@ MaxWidth="200" HorizontalAlignment="Stretch" Command="{ReflectionBinding #u.DataContext.DownButton_Click}" + IsEnabled="{Binding !Disable}" CommandParameter="{Binding}"> diff --git a/src/ST.Client/Services/ISteamService.cs b/src/ST.Client/Services/ISteamService.cs index 74445247d..28414ce79 100644 --- a/src/ST.Client/Services/ISteamService.cs +++ b/src/ST.Client/Services/ISteamService.cs @@ -55,7 +55,7 @@ namespace System.Application.Services void StartSteam(string? arguments = null); /// - /// 退出 Steam + /// 安全退出 Steam(如果有修改Steam数据的操作请退出后在执行不然Steam安全退出会还原修改) /// Task ShutdownSteam(); diff --git a/src/ST.Client/UI/ViewModels/Pages/SteamAccountPageViewModel.cs b/src/ST.Client/UI/ViewModels/Pages/SteamAccountPageViewModel.cs index d5a55f27b..88b535578 100644 --- a/src/ST.Client/UI/ViewModels/Pages/SteamAccountPageViewModel.cs +++ b/src/ST.Client/UI/ViewModels/Pages/SteamAccountPageViewModel.cs @@ -131,6 +131,8 @@ namespace System.Application.UI.ViewModels foreach (var item in SteamUsers.Where(x => x.MostRecent)) item.MostRecent = false; + await steamService.ShutdownSteam(); + if (user != null) { user.MostRecent = true; @@ -142,7 +144,6 @@ namespace System.Application.UI.ViewModels steamService.SetCurrentUser(string.Empty); } - await steamService.ShutdownSteam(); steamService.StartSteam(SteamSettings.SteamStratParameter.Value); } diff --git a/src/ST.Client/UI/ViewModels/Windows/SteamAccountPage/ShareManageViewModel.cs b/src/ST.Client/UI/ViewModels/Windows/SteamAccountPage/ShareManageViewModel.cs index 90cf51c7e..4e91722b3 100644 --- a/src/ST.Client/UI/ViewModels/Windows/SteamAccountPage/ShareManageViewModel.cs +++ b/src/ST.Client/UI/ViewModels/Windows/SteamAccountPage/ShareManageViewModel.cs @@ -61,9 +61,8 @@ namespace System.Application.UI.ViewModels Timeused = x.Timeused, Description = x.Description, Disable = true, - Tokenid = x.Tokenid + Tokenid = x.Tokenid, })); - int count = allList.Count - 1; foreach (var item in allList) { var temp = userlist.FirstOrDefault(x => x.SteamId32 == item.SteamId3_Int); @@ -198,7 +197,7 @@ namespace System.Application.UI.ViewModels var result = await MessageBox.ShowAsync(AppResources.AccountChange_RestartSteam, button: MessageBox.Button.OKCancel); if (result.IsOK()) { - await steamService.ShutdownSteam(); + steamService.TryKillSteamProcess(); steamService.StartSteam(); } }