mirror of
https://github.com/BeyondDimension/SteamTools.git
synced 2026-10-26 12:09:32 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ab26f7848 | ||
|
|
d646eacda1 | ||
|
|
fb029f729b | ||
|
|
5ef6663269 | ||
|
|
5c86b53000 | ||
|
|
efb6adbd9b | ||
|
|
209202b5cf | ||
|
|
c0a081e226 |
@@ -13,25 +13,12 @@ namespace SteamTool.Core
|
||||
{
|
||||
public class HostsService
|
||||
{
|
||||
public readonly static string HostsPath = @$"{Environment.SystemDirectory}\drivers\etc\hosts";
|
||||
public readonly static string HostsPath = $"{Environment.GetFolderPath(Environment.SpecialFolder.System)}\\drivers\\etc\\hosts";
|
||||
|
||||
static HostsService()
|
||||
{
|
||||
if (!File.Exists(HostsPath))
|
||||
{
|
||||
using var fs = File.Create(HostsPath);
|
||||
fs.Close();
|
||||
}
|
||||
}
|
||||
|
||||
public OperationResult<List<string>> ReadHostsAllLines()
|
||||
{
|
||||
var result = new OperationResult<List<string>>(OperationResultType.Error, Resources.Hosts_ReadError);
|
||||
if (!File.Exists(HostsPath))
|
||||
{
|
||||
result.Message = "hosts file was not found";
|
||||
return result;
|
||||
}
|
||||
try
|
||||
{
|
||||
var dataLines = File.ReadAllLines(HostsPath).ToList();
|
||||
@@ -61,11 +48,7 @@ namespace SteamTool.Core
|
||||
public OperationResult UpdateHosts(string ip, string domain)
|
||||
{
|
||||
var result = new OperationResult(OperationResultType.Error, Resources.Hosts_WirteError);
|
||||
if (!File.Exists(HostsPath))
|
||||
{
|
||||
result.Message = "hosts file was not found";
|
||||
return result;
|
||||
}
|
||||
|
||||
//操作前取消只读属性
|
||||
File.SetAttributes(HostsPath, FileAttributes.Normal);
|
||||
|
||||
@@ -111,11 +94,7 @@ namespace SteamTool.Core
|
||||
public OperationResult UpdateHosts(List<(string ip, string domain)> hosts)
|
||||
{
|
||||
var result = new OperationResult(OperationResultType.Error, Resources.Hosts_WirteError);
|
||||
if (!File.Exists(HostsPath))
|
||||
{
|
||||
result.Message = "hosts file was not found";
|
||||
return result;
|
||||
}
|
||||
|
||||
if (hosts.Count == 0)
|
||||
{
|
||||
return result;
|
||||
@@ -171,11 +150,7 @@ namespace SteamTool.Core
|
||||
public OperationResult RemoveHosts(string ip, string domain)
|
||||
{
|
||||
var result = new OperationResult(OperationResultType.Error, Resources.Hosts_WirteError);
|
||||
if (!File.Exists(HostsPath))
|
||||
{
|
||||
result.Message = "hosts file was not found";
|
||||
return result;
|
||||
}
|
||||
|
||||
//操作前取消只读属性
|
||||
File.SetAttributes(HostsPath, FileAttributes.Normal);
|
||||
|
||||
@@ -216,11 +191,7 @@ namespace SteamTool.Core
|
||||
public OperationResult RemoveHostsByTag()
|
||||
{
|
||||
var result = new OperationResult(OperationResultType.Error, Resources.Hosts_WirteError);
|
||||
if (!File.Exists(HostsPath))
|
||||
{
|
||||
result.Message = "hosts file was not found";
|
||||
return result;
|
||||
}
|
||||
|
||||
//操作前取消只读属性
|
||||
File.SetAttributes(HostsPath, FileAttributes.Normal);
|
||||
|
||||
@@ -257,7 +228,6 @@ namespace SteamTool.Core
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public void StartNotepadEditHosts()
|
||||
{
|
||||
System.Diagnostics.Process.Start("notepad.exe", HostsPath);
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace SteamTool.Core
|
||||
{
|
||||
private readonly HttpClient _client = new HttpClient();
|
||||
|
||||
public string UserAgent { get; set; } = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";
|
||||
public string UserAgent { get; set; } = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36";
|
||||
|
||||
public string Accept { get; set; } = "application/json";
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace SteamTool.Core
|
||||
Kernel.Bind<SteamToolService>().ToSelf();
|
||||
Kernel.Bind<VdfService>().To<VdfService>();
|
||||
Kernel.Bind<HttpServices>().ToConstant(new HttpServices());
|
||||
Kernel.Bind<HostsService>().ToConstant(new HostsService());
|
||||
Kernel.Bind<HostsService>().To<HostsService>();
|
||||
}
|
||||
|
||||
public TInterface Get<TInterface>()
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -2,6 +2,7 @@
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:s="clr-namespace:System;assembly=mscorlib"
|
||||
ShutdownMode="OnExplicitShutdown"
|
||||
xmlns:converters="http://schemes.grabacr.net/winfx/2015/personal/converters">
|
||||
<Application.Resources>
|
||||
<ResourceDictionary>
|
||||
|
||||
@@ -68,7 +68,6 @@ namespace SteamTools
|
||||
}
|
||||
Logger.EnableTextLog = true;
|
||||
#endif
|
||||
App.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
|
||||
this.DispatcherUnhandledException += App_DispatcherUnhandledException;
|
||||
DispatcherHelper.UIDispatcher = this.Dispatcher;
|
||||
if (e.Args.ContainsArg("-log"))
|
||||
@@ -88,11 +87,6 @@ namespace SteamTools
|
||||
WindowService.Current.AddTo(this).Initialize();
|
||||
ProxyService.Current.Initialize();
|
||||
SteamConnectService.Current.Initialize();
|
||||
AuthService.Current.Initialize();
|
||||
if (GeneralSettings.IsAutoCheckUpdate)
|
||||
{
|
||||
AutoUpdateService.Current.CheckUpdate();
|
||||
}
|
||||
|
||||
//托盘加载
|
||||
TaskbarService.Current.Taskbar = (TaskbarIcon)FindResource("Taskbar");
|
||||
@@ -141,7 +135,7 @@ namespace SteamTools
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine(ex);
|
||||
MessageBox.Show(ex.Message, $"{ProductInfo.Title} {ProductInfo.VersionString} Error");
|
||||
MessageBox.Show(ex.Message, "Error");
|
||||
}
|
||||
|
||||
Current.Shutdown();
|
||||
@@ -158,8 +152,8 @@ namespace SteamTools
|
||||
//TaskbarService.Current.Taskbar.Icon = null; //避免托盘图标没有自动消失
|
||||
TaskbarService.Current.Taskbar.Icon.Dispose();
|
||||
}
|
||||
this.compositeDisposable.Dispose();
|
||||
base.OnExit(e);
|
||||
this.compositeDisposable.Dispose();
|
||||
}
|
||||
|
||||
private void ProcessCommandLineParameter(string[] args)
|
||||
@@ -178,7 +172,6 @@ namespace SteamTools
|
||||
}
|
||||
if (args.ContainsArg("-app", out int appid))
|
||||
{
|
||||
App.Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
|
||||
ThemeService.Current.Register(this, Theme.Windows, Accent.Windows);
|
||||
new SettingsPageViewModel();
|
||||
WindowService.Current.AddTo(this).Initialize(appid);
|
||||
|
||||
@@ -339,9 +339,9 @@ namespace SteamTools.Models
|
||||
Created = new DateTime(t).ToLocalTime();
|
||||
break;
|
||||
|
||||
//case "autorefresh":
|
||||
// _autoRefresh = reader.ReadElementContentAsBoolean();
|
||||
// break;
|
||||
case "autorefresh":
|
||||
_autoRefresh = reader.ReadElementContentAsBoolean();
|
||||
break;
|
||||
|
||||
case "allowcopy":
|
||||
_allowCopy = reader.ReadElementContentAsBoolean();
|
||||
@@ -446,9 +446,9 @@ namespace SteamTools.Models
|
||||
writer.WriteValue(Convert.ToInt64((this.Created.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalMilliseconds));
|
||||
writer.WriteEndElement();
|
||||
|
||||
//writer.WriteStartElement("autorefresh");
|
||||
//writer.WriteValue(this.AutoRefresh);
|
||||
//writer.WriteEndElement();
|
||||
writer.WriteStartElement("autorefresh");
|
||||
writer.WriteValue(this.AutoRefresh);
|
||||
writer.WriteEndElement();
|
||||
//
|
||||
writer.WriteStartElement("allowcopy");
|
||||
writer.WriteValue(this.AllowCopy);
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 106 KiB |
@@ -45,7 +45,7 @@ namespace SteamTools.Services
|
||||
|
||||
#endregion
|
||||
|
||||
private BindingList<WinAuthAuthenticator> _Authenticators = new BindingList<WinAuthAuthenticator>();
|
||||
private BindingList<WinAuthAuthenticator> _Authenticators;
|
||||
|
||||
public BindingList<WinAuthAuthenticator> Authenticators
|
||||
{
|
||||
@@ -74,7 +74,7 @@ namespace SteamTools.Services
|
||||
WindowService.Current.MainWindow.Dialog($"令牌同步服务器失败,错误信息:{ex.Message}");
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
Authenticators = new BindingList<WinAuthAuthenticator>();
|
||||
}
|
||||
@@ -533,7 +533,7 @@ namespace SteamTools.Services
|
||||
}
|
||||
if (reader.Name == "WinAuthAuthenticator")
|
||||
{
|
||||
var wa = new WinAuthAuthenticator() { AutoRefresh = false };
|
||||
var wa = new WinAuthAuthenticator();
|
||||
wa.ReadXml(reader, null);
|
||||
list.Add(wa);
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ namespace SteamTools.Services
|
||||
|
||||
public async void DownloadUpdate(GithubReleaseModel model)
|
||||
{
|
||||
if (WindowService.Current.ShowDialogWindow($"检测到新版本更新内容:{model.body}\r\n是否立即更新?", $"{ProductInfo.Title} | 更新提示") == true)
|
||||
if (WindowService.Current.MainWindow.Dialog($"检测到新版本更新内容:{model.body}\r\n是否立即更新?", $"{ProductInfo.Title} | 更新提示") == true)
|
||||
{
|
||||
//var name = model.assets.FirstOrDefault()?.name;
|
||||
var name = Path.Combine(AppContext.BaseDirectory, @$"{ProductInfo.Title} {model.version}.zip");
|
||||
|
||||
@@ -49,8 +49,7 @@ new ProxyDomainModel{
|
||||
Index=0,
|
||||
Name=Resources.SteamCommunity,
|
||||
Domains = new List<string>{"steamcommunity.com" },
|
||||
//ToDomain = "steamcommunity-a.akamaihd.net",
|
||||
ToDomain = "steampowered.com",
|
||||
ToDomain = "steamcommunity-a.akamaihd.net",
|
||||
Hosts = new List<string>{ "steamcommunity.com", "www.steamcommunity.com"},
|
||||
DomainTag = DomainTag.SteamCommunity,
|
||||
IsEnable= true,
|
||||
@@ -59,8 +58,7 @@ new ProxyDomainModel{
|
||||
Index=1,
|
||||
Name=Resources.SteamStore,
|
||||
Domains = new List<string>{"steampowered.com" },
|
||||
//ToDomain = "steamstore-a.akamaihd.net",
|
||||
ToDomain = "steampowered.com",
|
||||
ToDomain = "steamstore-a.akamaihd.net",
|
||||
Hosts = new List<string>{ "store.steampowered.com", "api.steampowered.com"},
|
||||
DomainTag = DomainTag.SteamStore,
|
||||
IsEnable= false,
|
||||
@@ -79,8 +77,7 @@ new ProxyDomainModel{
|
||||
Index=3,
|
||||
Name=Resources.SteamChat,
|
||||
Domains = new List<string>{"steam-chat.com" },
|
||||
//ToDomain = "steamstore-a.akamaihd.net",
|
||||
ToDomain = "steampowered.com",
|
||||
ToDomain = "steamstore-a.akamaihd.net",
|
||||
Hosts = new List<string>{ "steam-chat.com"},
|
||||
DomainTag = DomainTag.SteamChat,
|
||||
IsEnable= false,
|
||||
|
||||
@@ -70,9 +70,6 @@ namespace SteamTools.Services
|
||||
var window = new MessageDialog { DataContext = dialog };
|
||||
window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
|
||||
window.ShowDialog();
|
||||
dialog.Topmost = true;
|
||||
dialog.Activate();
|
||||
dialog.Topmost = false;
|
||||
return dialog.DialogResult;
|
||||
}
|
||||
|
||||
|
||||
@@ -40,9 +40,7 @@
|
||||
|
||||
<PackageId />
|
||||
|
||||
<Version>1.0.3.2</Version>
|
||||
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
<Version>1.0.3</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net472|AnyCPU'">
|
||||
@@ -285,9 +283,6 @@
|
||||
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="Views\Pages\SteamIdleCardPage.xaml">
|
||||
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
|
||||
</Page>
|
||||
<Page Update="Views\Pages\SteamAppPage.xaml">
|
||||
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
@@ -46,6 +46,9 @@ namespace SteamTools.ViewModels
|
||||
CanExecuteFunc = () => true,
|
||||
CommandAction = () =>
|
||||
{
|
||||
App.Current.MainWindow = WindowService.Current.GetMainWindow();
|
||||
//if (!App.Current.MainWindow.IsVisible)
|
||||
// App.Current.MainWindow.Show();
|
||||
var mainWindow = (WindowService.Current.MainWindow as MainWindowViewModel);
|
||||
mainWindow.IsVisible = true;
|
||||
}
|
||||
|
||||
@@ -125,19 +125,22 @@ namespace SteamTools.ViewModels
|
||||
if (!this.IsInitialized)
|
||||
{
|
||||
base.Initialize();
|
||||
await Task.Run(async () =>
|
||||
foreach (var item in this.TabItems)
|
||||
{
|
||||
foreach (var item in this.TabItems)
|
||||
if (item == SteamAppPage)
|
||||
continue;
|
||||
await item.Initialize().ContinueWith(s =>
|
||||
{
|
||||
if (item == SteamAppPage)
|
||||
continue;
|
||||
await item.Initialize().ContinueWith(s =>
|
||||
{
|
||||
Logger.Error(s.Exception);
|
||||
WindowService.Current.ShowDialogWindow(s.Exception.Message);
|
||||
}, TaskContinuationOptions.OnlyOnFaulted).ContinueWith(s => s.Dispose());
|
||||
}
|
||||
});
|
||||
Logger.Error(s.Exception);
|
||||
WindowService.Current.ShowDialogWindow(s.Exception.Message);
|
||||
}, TaskContinuationOptions.OnlyOnFaulted).ContinueWith(s => s.Dispose());
|
||||
}
|
||||
|
||||
AuthService.Current.Initialize();
|
||||
if (GeneralSettings.IsAutoCheckUpdate)
|
||||
{
|
||||
AutoUpdateService.Current.CheckUpdate();
|
||||
}
|
||||
|
||||
this.IsInitialized = true;
|
||||
StatusService.Current.Set(Resources.Ready);
|
||||
|
||||
@@ -26,6 +26,21 @@ namespace SteamTools.ViewModels
|
||||
protected set { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
private BindingList<WinAuthAuthenticator> _Authenticators;
|
||||
|
||||
public BindingList<WinAuthAuthenticator> Authenticators
|
||||
{
|
||||
get => this._Authenticators;
|
||||
set
|
||||
{
|
||||
if (this._Authenticators != value)
|
||||
{
|
||||
this._Authenticators = value;
|
||||
this.RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool _IsEdit;
|
||||
public bool IsEdit
|
||||
{
|
||||
@@ -40,16 +55,10 @@ namespace SteamTools.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
public LocalAuthPageViewModel()
|
||||
{
|
||||
//AuthService.Current.Subscribe(nameof(AuthService.Current.Authenticators),
|
||||
// () => { Authenticators = new BindingList<WinAuthAuthenticator>(AuthService.Current.Authenticators); }).AddTo(this);
|
||||
}
|
||||
|
||||
public void ImageDelete_Click(WinAuthAuthenticator auth)
|
||||
{
|
||||
AuthService.Current.Authenticators.Remove(auth);
|
||||
if (AuthService.Current.Authenticators.Count == 0)
|
||||
Authenticators.Remove(auth);
|
||||
if (Authenticators.Count == 0)
|
||||
{
|
||||
AuthSettings.Authenticators.Value = null;
|
||||
IsEdit = false;
|
||||
@@ -85,6 +94,12 @@ namespace SteamTools.ViewModels
|
||||
TaskbarService.Current.Notify("已复制令牌");
|
||||
}
|
||||
|
||||
internal async override Task Initialize()
|
||||
{
|
||||
AuthService.Current.Subscribe(nameof(AuthService.Current.Authenticators),
|
||||
() => { Authenticators = AuthService.Current.Authenticators; }).AddTo(this);
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
|
||||
public void AddAuth_Click()
|
||||
{
|
||||
@@ -93,7 +108,7 @@ namespace SteamTools.ViewModels
|
||||
|
||||
public void EditAuth_Click()
|
||||
{
|
||||
if (AuthService.Current.Authenticators == null || !AuthService.Current.Authenticators.Any())
|
||||
if (Authenticators == null || !Authenticators.Any())
|
||||
{
|
||||
StatusService.Current.Notify("没有可编辑的令牌");
|
||||
return;
|
||||
@@ -101,7 +116,7 @@ namespace SteamTools.ViewModels
|
||||
this.IsEdit = !IsEdit;
|
||||
if (!IsEdit)
|
||||
{
|
||||
AuthSettings.Authenticators.Value = AuthService.ConvertJsonAuthenticator(AuthService.Current.Authenticators.ToList()).CompressString();
|
||||
AuthSettings.Authenticators.Value = AuthService.ConvertJsonAuthenticator(Authenticators.ToList()).CompressString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,121 +22,83 @@
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
<DockPanel Margin="8">
|
||||
<TextBlock DockPanel.Dock="Top" Text="{Binding Resources.AboutUpdateHistory, Source={x:Static services:ResourceService.Current}, Mode=OneWay}"
|
||||
<ScrollViewer Padding="8" VerticalScrollBarVisibility="Auto">
|
||||
<DockPanel>
|
||||
<TextBlock DockPanel.Dock="Top" Text="{Binding Resources.AboutUpdateHistory, Source={x:Static services:ResourceService.Current}, Mode=OneWay}"
|
||||
Style="{DynamicResource SettingsHeaderTextStyleKey}" />
|
||||
<Border Grid.Column="1">
|
||||
<FlowDocumentScrollViewer Padding="0,-18,0,0"
|
||||
<Border Grid.Column="1">
|
||||
<FlowDocumentScrollViewer Padding="0,-18,0,0"
|
||||
HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Auto">
|
||||
<FlowDocument FontSize="12"
|
||||
<FlowDocument FontSize="12"
|
||||
Foreground="{DynamicResource ForegroundBrushKey}"
|
||||
FontFamily="Meiryo UI"
|
||||
TextAlignment="Left"
|
||||
MaxPageWidth="900">
|
||||
<Paragraph Language="zh-cn">
|
||||
<Run Text="Steam++ v1.0.3" FontSize="16"/>
|
||||
<Run Text=" "/>
|
||||
<Run Text="2020-12-26" FontSize="10" />
|
||||
<LineBreak />
|
||||
<Run Text="更新内容"></Run>
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增pixiv本地反代服务支持" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增在欢迎页steam昵称后显示steam的登陆区域" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="添加steam图片修复的本地反代支持" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="修复最小化恢复时UI边框错位的BUG"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="修复令牌编辑和导入时出现的非空报错"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="帐户切换功能的最近登陆时间从北京时间改为当前系统时区时间"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="修复一个因为DNS解析错误会导致程序内存溢出闪退的BUG"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="SDA令牌导入不再支持导入加密文件,如果要导入加密的maFile请先在SDA移除加密"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="修改初始化的方式和steam api的连接逻辑来避免steam游戏掉帧的BUG"></Run>
|
||||
<LineBreak/>
|
||||
<LineBreak />
|
||||
<Run Text="已知的未修复问题"></Run>
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="部分用户无法加载游戏列表,无法复现,原因暂时不明。(也可能是加载太慢,过半小时才能加载出来)" />
|
||||
</Paragraph>
|
||||
<Paragraph Language="zh-cn">
|
||||
<Run Text="Steam++ v1.0.2" FontSize="16"/>
|
||||
<Run Text=" "/>
|
||||
<Run Text="2020-12-21" FontSize="10" />
|
||||
<LineBreak />
|
||||
<Run Text="更新内容"></Run>
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="更新了由Benares制作的图标" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增帐户切换删除功能" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="添加github图片资源文件代理服务与discord代理服务支持" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="因为有问题暂时去掉了GOG Galaxy代理选项"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="修复一个会导致程序启动没有反应的bug"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="修复托盘菜单steam昵称过长ui错位bug"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增steam启动参数设置"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增启动时程序最小化到托盘菜单设置"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增捐助列表的展示"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增工具自动更新功能"></Run>
|
||||
<LineBreak />
|
||||
<LineBreak />
|
||||
<Run Text="已知的未修复问题"></Run>
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="(严重)经反馈,程序运行时可能会影响部分steam游戏掉帧,GPU占用率变低,这个BUG目前在作者的机器上无法复现所以暂时没有修复,如果你遇到这个问题可以手动关闭steam++解决。" />
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="程序在高DPI缩放分辨率下可能会UI布局错位,目前暂时拖动程序可恢复。" />
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="部分用户无法加载游戏列表,无法复现,原因暂时不明。" />
|
||||
</Paragraph>
|
||||
<Paragraph Language="zh-cn">
|
||||
<Run Text="Steam++ v1.0.0" FontSize="16"/>
|
||||
<Run Text=" "/>
|
||||
<Run Text="2020-12-14" FontSize="10" />
|
||||
<LineBreak />
|
||||
<Run Text="发布第一个版本" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="主要功能:社区反代,帐户切换,成就解锁,本地令牌。"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="次要功能:强制无边框窗口化以及CSGO VAC屏蔽修复。"></Run>
|
||||
</Paragraph>
|
||||
</FlowDocument>
|
||||
</FlowDocumentScrollViewer>
|
||||
</Border>
|
||||
</DockPanel>
|
||||
<Paragraph Language="zh-cn">
|
||||
<Run Text="Steam++ v1.0.2" FontSize="16"/>
|
||||
<Run Text=" "/>
|
||||
<Run Text="2020-12-21" FontSize="10" />
|
||||
<LineBreak />
|
||||
<Run Text="更新内容"></Run>
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="更新了由Benares制作的图标" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增帐户切换删除功能" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="添加github图片资源文件代理服务与discord代理服务支持" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="因为有问题暂时去掉了GOG Galaxy代理选项"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="修复一个会导致程序启动没有反应的bug"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="修复托盘菜单steam昵称过长ui错位bug"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增steam启动参数设置"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增启动时程序最小化到托盘菜单设置"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增捐助列表的展示"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="新增工具自动更新功能"></Run>
|
||||
<LineBreak />
|
||||
<LineBreak />
|
||||
<Run Text="已知的未修复问题"></Run>
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="(严重)经反馈,程序运行时可能会影响部分steam游戏掉帧,GPU占用率变低,这个BUG目前在作者的机器上无法复现所以暂时没有修复,如果你遇到这个问题可以手动关闭steam++解决。" />
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="程序在高DPI缩放分辨率下可能会UI布局错位,目前暂时拖动程序可恢复。" />
|
||||
<LineBreak />
|
||||
<Run Text="    "/>
|
||||
<Run Text="部分用户无法加载游戏列表,无法复现,原因暂时不明。" />
|
||||
</Paragraph>
|
||||
<Paragraph Language="zh-cn">
|
||||
<Run Text="Steam++ v1.0.0" FontSize="16"/>
|
||||
<Run Text=" "/>
|
||||
<Run Text="2020-12-14" FontSize="10" />
|
||||
<LineBreak />
|
||||
<Run Text="发布第一个版本" />
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="主要功能:社区反代,帐户切换,成就解锁,本地令牌。"></Run>
|
||||
<LineBreak/>
|
||||
<Run Text="    "/>
|
||||
<Run Text="次要功能:强制无边框窗口化以及CSGO VAC屏蔽修复。"></Run>
|
||||
</Paragraph>
|
||||
</FlowDocument>
|
||||
</FlowDocumentScrollViewer>
|
||||
</Border>
|
||||
</DockPanel>
|
||||
</ScrollViewer>
|
||||
</UserControl>
|
||||
|
||||
@@ -20,6 +20,8 @@ namespace SteamTools.Views.Content
|
||||
/// </summary>
|
||||
public partial class AboutUpdateHistory : UserControl
|
||||
{
|
||||
private const string UpdateLogText = "";
|
||||
|
||||
public AboutUpdateHistory()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
</Button>
|
||||
</StackPanel>
|
||||
<TextBlock Style="{StaticResource DetailTextStyleKey}" Margin="20,6,0,0">
|
||||
<Run Text="*置于壁纸层的游戏可能会无法操控,这个问题可以解决但是目前开发精力不在这,目前这个功能就这样了。游戏结束后桌面会依然留下冻结的画面,这时可以点击刷新壁纸来恢复默认壁纸。"/>
|
||||
<Run Text="*置于壁纸层的游戏可能会无法操控,这个问题可以解决但是目前发开精力不在这,目前这个功能就这样了。游戏结束后桌面会依然留下冻结的画面,这时可以点击刷新壁纸来恢复默认壁纸。"/>
|
||||
<Run Text="并且将窗口放置于桌面壁纸层功能与Wallpaper Engine和其它动态桌面软件不兼容,使用时注意关掉Wallpaper Engine等软件。"/>
|
||||
</TextBlock>
|
||||
<Rectangle Style="{DynamicResource SeparatorStyleKey}" />
|
||||
|
||||
@@ -175,9 +175,6 @@
|
||||
<DataTemplate DataType="{x:Type vm:SteamAccountPageViewModel}">
|
||||
<pages:SwitchSteamAccountPage />
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="{x:Type vm:SteamIdlePageViewModel}">
|
||||
<pages:SteamIdleCardPage />
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="{x:Type vm:CommunityProxyPageViewModel}">
|
||||
<pages:CommunityProxyPage />
|
||||
</DataTemplate>
|
||||
|
||||
@@ -17,7 +17,7 @@ using MetroRadiance.UI;
|
||||
namespace SteamTools.Views.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// AboutPage.xaml 的交互逻辑
|
||||
/// SwitchTheme.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class AboutPage : UserControl
|
||||
{
|
||||
|
||||
@@ -16,7 +16,7 @@ using System.Windows.Shapes;
|
||||
namespace SteamTools.Views.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// ArchiSteamFarmPlusPage.xaml 的交互逻辑
|
||||
/// SwitchSteamAccount.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ArchiSteamFarmPlusPage : UserControl
|
||||
{
|
||||
|
||||
@@ -114,13 +114,14 @@
|
||||
Style="{DynamicResource SeparatorRectangleStyleKey}" />
|
||||
</StackPanel>
|
||||
<ListBox DockPanel.Dock="Bottom"
|
||||
IsEnabled="{Binding ElementName=service,Path=IsChecked,Mode=OneWay,Converter={StaticResource ReverseBooleanConverter}}"
|
||||
BorderThickness="0"
|
||||
Style="{StaticResource MetroListBox}"
|
||||
ItemsSource="{Binding ProxyDomains.Value,Source={x:Static services:ProxyService.Current}, Mode=OneWay}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<DockPanel Height="30" ToolTip="{Binding DomainTag}">
|
||||
<CheckBox HorizontalAlignment="Left" IsEnabled="{Binding ElementName=service,Path=IsChecked,Mode=OneWay,Converter={StaticResource ReverseBooleanConverter}}"
|
||||
<CheckBox HorizontalAlignment="Left"
|
||||
Content="{Binding Name}"
|
||||
IsChecked="{Binding IsEnable}">
|
||||
<i:Interaction.Triggers>
|
||||
|
||||
@@ -17,7 +17,7 @@ using MetroRadiance.UI;
|
||||
namespace SteamTools.Views.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// GameRelatedPage.xaml 的交互逻辑
|
||||
/// SwitchTheme.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class GameRelatedPage : UserControl
|
||||
{
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid Margin="8,4,8,8">
|
||||
<Grid Margin="8,0,8,8">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"></RowDefinition>
|
||||
<RowDefinition Height="*"></RowDefinition>
|
||||
@@ -75,7 +75,7 @@
|
||||
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
|
||||
<ItemsControl
|
||||
Foreground="{DynamicResource HighlightForegroundBrushKey}"
|
||||
ItemsSource="{Binding Authenticators,Source={x:Static services:AuthService.Current},Mode=OneWay}">
|
||||
ItemsSource="{Binding Authenticators,Mode=OneWay}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
|
||||
@@ -16,7 +16,7 @@ using System.Windows.Shapes;
|
||||
namespace SteamTools.Views.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// LocalAuthPage.xaml 的交互逻辑
|
||||
/// SwitchSteamAccount.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class LocalAuthPage : UserControl
|
||||
{
|
||||
|
||||
@@ -17,7 +17,7 @@ using MetroRadiance.UI;
|
||||
namespace SteamTools.Views.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// OtherPlatformPage.xaml 的交互逻辑
|
||||
/// SwitchTheme.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class OtherPlatformPage : UserControl
|
||||
{
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
Style="{StaticResource TabHeaderTextStyleKey}" />
|
||||
</TabItem.Header>
|
||||
<ScrollViewer HorizontalScrollBarVisibility="Disabled"
|
||||
VerticalScrollBarVisibility="Auto" Background="{DynamicResource ThemeBrushKey}">
|
||||
VerticalScrollBarVisibility="Auto">
|
||||
<StackPanel Margin="8,0,8,8">
|
||||
<Panel.Resources>
|
||||
<Style TargetType="{x:Type WrapPanel}">
|
||||
|
||||
@@ -11,7 +11,7 @@ using MetroRadiance.UI;
|
||||
namespace SteamTools.Views.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// SettingsPage.xaml 的交互逻辑
|
||||
/// SwitchTheme.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class SettingsPage : UserControl
|
||||
{
|
||||
|
||||
@@ -16,7 +16,7 @@ using System.Windows.Shapes;
|
||||
namespace SteamTools.Views.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// SteamAppPage.xaml 的交互逻辑
|
||||
/// SwitchSteamAccount.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class SteamAppPage : UserControl
|
||||
{
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
<UserControl x:Class="SteamTools.Views.Pages.SteamIdleCardPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:control="clr-namespace:SteamTools.Views.Pages"
|
||||
xmlns:services="clr-namespace:SteamTools.Services"
|
||||
mc:Ignorable="d"
|
||||
d:DesignWidth="600"
|
||||
d:DesignHeight="400">
|
||||
|
||||
<TabControl Grid.Row="1" Style="{StaticResource VerticalTabControlStyleKey}"
|
||||
FontFamily="{DynamicResource DefaultFontFamilyKey}" FontSize="14">
|
||||
<TabControl.Resources>
|
||||
<Style x:Key="TabHeaderTextStyleKey"
|
||||
TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground"
|
||||
Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=Foreground}" />
|
||||
<Setter Property="Margin"
|
||||
Value="14,0" />
|
||||
<Setter Property="VerticalAlignment"
|
||||
Value="Center" />
|
||||
</Style>
|
||||
</TabControl.Resources>
|
||||
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<TextBlock Text="{Binding Resources.Origin,Source={x:Static services:ResourceService.Current}, Mode=OneWay}"
|
||||
Style="{StaticResource TabHeaderTextStyleKey}" />
|
||||
</TabItem.Header>
|
||||
</TabItem>
|
||||
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<TextBlock Text="{Binding Resources.Uplay,Source={x:Static services:ResourceService.Current}, Mode=OneWay}"
|
||||
Style="{StaticResource TabHeaderTextStyleKey}" />
|
||||
</TabItem.Header>
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<TextBlock Text="{Binding Resources.WinStore,Source={x:Static services:ResourceService.Current}, Mode=OneWay}"
|
||||
Style="{StaticResource TabHeaderTextStyleKey}" />
|
||||
</TabItem.Header>
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<TextBlock Text="{Binding Resources.GOG,Source={x:Static services:ResourceService.Current}, Mode=OneWay}"
|
||||
Style="{StaticResource TabHeaderTextStyleKey}" />
|
||||
</TabItem.Header>
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<TextBlock Text="{Binding Resources.Epic,Source={x:Static services:ResourceService.Current}, Mode=OneWay}"
|
||||
Style="{StaticResource TabHeaderTextStyleKey}" />
|
||||
</TabItem.Header>
|
||||
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
</UserControl>
|
||||
@@ -1,30 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using MetroRadiance.UI;
|
||||
|
||||
namespace SteamTools.Views.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// SteamIdleCardPage.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class SteamIdleCardPage : UserControl
|
||||
{
|
||||
public SteamIdleCardPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -255,7 +255,7 @@
|
||||
Prompt="" />
|
||||
|
||||
<TextBlock Grid.Row="1" Grid.Column="0">
|
||||
<Run Text="从files文件夹中,粘贴'SteamGuard-NNNNNNNN'的全部内容" />
|
||||
<Run Text="从文件文件夹中,粘贴'SteamGuard-NNNNNNNN'的全部内容" />
|
||||
</TextBlock>
|
||||
<metro:PromptTextBox Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
|
||||
+64
-80
@@ -2,94 +2,78 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME;
|
||||
|
||||
namespace SteamTools.Win32
|
||||
{
|
||||
internal class WinInet
|
||||
{
|
||||
// For PInvoke: Initiates the enumeration of the cache groups in the Internet cache
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "FindFirstUrlCacheGroup",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern IntPtr FindFirstUrlCacheGroup(
|
||||
int dwFlags,
|
||||
int dwFilter,
|
||||
IntPtr lpSearchCondition,
|
||||
int dwSearchCondition,
|
||||
ref long lpGroupId,
|
||||
IntPtr lpReserved);
|
||||
internal class WinInet
|
||||
{
|
||||
// For PInvoke: Initiates the enumeration of the cache groups in the Internet cache
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "FindFirstUrlCacheGroup",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern IntPtr FindFirstUrlCacheGroup(
|
||||
int dwFlags,
|
||||
int dwFilter,
|
||||
IntPtr lpSearchCondition,
|
||||
int dwSearchCondition,
|
||||
ref long lpGroupId,
|
||||
IntPtr lpReserved);
|
||||
|
||||
// For PInvoke: Retrieves the next cache group in a cache group enumeration
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "FindNextUrlCacheGroup",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern bool FindNextUrlCacheGroup(
|
||||
IntPtr hFind,
|
||||
ref long lpGroupId,
|
||||
IntPtr lpReserved);
|
||||
// For PInvoke: Retrieves the next cache group in a cache group enumeration
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "FindNextUrlCacheGroup",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern bool FindNextUrlCacheGroup(
|
||||
IntPtr hFind,
|
||||
ref long lpGroupId,
|
||||
IntPtr lpReserved);
|
||||
|
||||
// For PInvoke: Releases the specified GROUPID and any associated state in the cache index file
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "DeleteUrlCacheGroup",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern bool DeleteUrlCacheGroup(
|
||||
long groupId,
|
||||
int dwFlags,
|
||||
IntPtr lpReserved);
|
||||
// For PInvoke: Releases the specified GROUPID and any associated state in the cache index file
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "DeleteUrlCacheGroup",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern bool DeleteUrlCacheGroup(
|
||||
long groupId,
|
||||
int dwFlags,
|
||||
IntPtr lpReserved);
|
||||
|
||||
// For PInvoke: Begins the enumeration of the Internet cache
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "FindFirstUrlCacheEntryA",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern IntPtr FindFirstUrlCacheEntry(
|
||||
[MarshalAs(UnmanagedType.LPTStr)] string lpszUrlSearchPattern,
|
||||
IntPtr lpFirstCacheEntryInfo,
|
||||
ref int lpdwFirstCacheEntryInfoBufferSize);
|
||||
// For PInvoke: Begins the enumeration of the Internet cache
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "FindFirstUrlCacheEntryA",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern IntPtr FindFirstUrlCacheEntry(
|
||||
[MarshalAs(UnmanagedType.LPTStr)] string lpszUrlSearchPattern,
|
||||
IntPtr lpFirstCacheEntryInfo,
|
||||
ref int lpdwFirstCacheEntryInfoBufferSize);
|
||||
|
||||
// For PInvoke: Retrieves the next entry in the Internet cache
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "FindNextUrlCacheEntryA",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern bool FindNextUrlCacheEntry(
|
||||
IntPtr hFind,
|
||||
IntPtr lpNextCacheEntryInfo,
|
||||
ref int lpdwNextCacheEntryInfoBufferSize);
|
||||
// For PInvoke: Retrieves the next entry in the Internet cache
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "FindNextUrlCacheEntryA",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern bool FindNextUrlCacheEntry(
|
||||
IntPtr hFind,
|
||||
IntPtr lpNextCacheEntryInfo,
|
||||
ref int lpdwNextCacheEntryInfoBufferSize);
|
||||
|
||||
// For PInvoke: Removes the file that is associated with the source name from the cache, if the file exists
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "DeleteUrlCacheEntryA",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern bool DeleteUrlCacheEntry(
|
||||
IntPtr lpszUrlName);
|
||||
|
||||
|
||||
[DllImport("wininet.dll",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "InternetGetCookieEx",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern bool InternetGetCookieEx(
|
||||
string url,
|
||||
string cookieName,
|
||||
StringBuilder cookieData,
|
||||
ref int size,
|
||||
int dwFlags,
|
||||
IntPtr lpReserved);
|
||||
|
||||
}
|
||||
// For PInvoke: Removes the file that is associated with the source name from the cache, if the file exists
|
||||
[DllImport(@"wininet",
|
||||
SetLastError = true,
|
||||
CharSet = CharSet.Auto,
|
||||
EntryPoint = "DeleteUrlCacheEntryA",
|
||||
CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern bool DeleteUrlCacheEntry(
|
||||
IntPtr lpszUrlName);
|
||||
}
|
||||
}
|
||||
|
||||
+23
-33
@@ -8,40 +8,31 @@ Steam++只在keylol论坛与github发布,为了账号安全,请不要到其
|
||||
|
||||
|
||||
## 已知的未修复问题
|
||||
|
||||
|
||||
|
||||
|
||||
* (严重)经反馈,程序运行时可能会影响部分steam游戏掉帧,GPU占用率变低,这个BUG目前在作者的机器上无法复现所以暂时没有修复,如果你遇到这个问题可以手动关闭steam++解决。
|
||||
* 程序在高DPI缩放分辨率下可能会UI布局错位,目前暂时拖动程序可恢复。
|
||||
* 部分用户无法加载游戏列表,无法复现,原因暂时不明。
|
||||
|
||||
|
||||
## 更新内容
|
||||
|
||||
### 1.0.3.2
|
||||
一直在修BUG,下个版本开始要做新功能了。
|
||||
```
|
||||
新增pixiv本地反代服务支持
|
||||
新增在欢迎页steam昵称后显示steam的登陆区域
|
||||
添加steam图片修复的本地反代支持
|
||||
修复最小化恢复时UI边框错位的BUG
|
||||
修复令牌编辑和导入时出现的非空报错
|
||||
帐户切换功能的最近登陆时间从北京时间改为当前系统时区时间
|
||||
修复一个因为DNS解析错误会导致程序内存溢出闪退的BUG
|
||||
SDA令牌导入不再支持导入加密文件,如果要导入加密的maFile请先在SDA移除加密
|
||||
修改初始化的方式和steam api的连接逻辑来避免steam游戏掉帧的BUG
|
||||
解决程序最小化启动时弹窗报错
|
||||
优化本地令牌的加载
|
||||
```
|
||||
|
||||
### 1.0.2
|
||||
|
||||
```
|
||||
更新了由Benares制作的图标
|
||||
新增帐户切换删除功能
|
||||
添加github图片资源文件代理服务与discord代理服务支持
|
||||
因为有问题暂时去掉了GOG Galaxy代理选项
|
||||
修复一个会导致程序启动没有反应的bug
|
||||
修复托盘菜单steam昵称过长ui错位bug
|
||||
新增steam启动参数设置
|
||||
新增启动时程序最小化到托盘菜单设置
|
||||
新增捐助列表的展示
|
||||
新增工具自动更新功能
|
||||
更新了由Benares制作的图标
|
||||
新增帐户切换删除功能
|
||||
添加github图片资源文件代理服务与discord代理服务支持
|
||||
因为有问题暂时去掉了GOG Galaxy代理选项
|
||||
修复一个会导致程序启动没有反应的bug
|
||||
修复托盘菜单steam昵称过长ui错位bug
|
||||
新增steam启动参数设置
|
||||
新增启动时程序最小化到托盘菜单设置
|
||||
新增捐助列表的展示
|
||||
新增工具自动更新功能
|
||||
```
|
||||
|
||||
## 工具介绍
|
||||
@@ -49,7 +40,8 @@ SDA令牌导入不再支持导入加密文件,如果要导入加密的maFile
|
||||
`Steam++`是一个包含多种Steam工具功能的工具箱,开源发布于[Github](https://github.com/rmbadmin/SteamTools),如果您对发布的二进制文件不放心,可以自行下载源码编译运行。
|
||||
此工具的大部分功能都是需要您下载安装Steam才能使用。
|
||||
工具预计将整合进大部分常用的Steam相关工具,并且尽力做到比原工具更好用,在各种整合添加功能的同时,也会注意体积尽量的控制到最小。
|
||||
|
||||
查毒链接[https://www.virustotal.com/gui/file/3889babb8b0dcf79b16045679a5cb57a70cc6d60447078fb65b8a8979da2f14d/detection](https://www.virustotal.com/gui/file/3889babb8b0dcf79b16045679a5cb57a70cc6d60447078fb65b8a8979da2f14d/detection)
|
||||
虽然没有什么杀毒软件报毒,但是使用过程中可能遇到windows defender误报,您可以选择添加信任。
|
||||
软件截图
|
||||
[hide]
|
||||
[attachimg]1228394[/attachimg]
|
||||
@@ -124,11 +116,9 @@ SDA令牌导入不再支持导入加密文件,如果要导入加密的maFile
|
||||
> [Github](https://github.com/rmbadmin/SteamTools/releases)
|
||||
> 分流下载:
|
||||
> [hide]
|
||||
> [蓝奏云](https://wws.lanzous.com/i6WLTjr4lsj)
|
||||
> [百度云](https://pan.baidu.com/s/1v5UGz-VlmsFS-7ISpcXnIw)
|
||||
> 提取码:33zw
|
||||
> [蓝奏云](https://wws.lanzous.com/ihW80jkylcb)
|
||||
> [百度云](https://pan.baidu.com/s/1um0YboiVGZTs4rC6uCCa1g)
|
||||
> 提取码:pz3t
|
||||
> [/hide]
|
||||
> EXE 大小:4.74MB
|
||||
> MD5:D658FB5F6E142CB92DAB73BEF929327D
|
||||
> [查毒链接](https://www.virustotal.com/gui/file/1073fc19c3208228b1a00eb9bceab771cbf77ffbf1a6c2de666a0e9a4967db60/detection)
|
||||
虽然没有什么杀毒软件报毒,但是使用过程中可能遇到windows defender误报,您可以选择添加信任。
|
||||
> EXE 大小:4.85MB
|
||||
> MD5:F819FEAA3463E0B9DED7E94AB87088B0
|
||||
Reference in New Issue
Block a user