RyLiveTools/Source/MainWindow.xaml.cs
如果当时 0ec1400de9 ### 2024-04-12更新
------
####  V1.0.2404.1201
- 新增支持手动运行规则。
- 规则播放时间间隔不再针对全局声效,而只针对当前规则声效。
- 修复规则中播放文件夹可能导致无法执行的BUG。
- 修复规则不勾选礼物和点赞,则无法执行的BUG。
2024-04-13 10:13:30 +08:00

152 lines
6.0 KiB
C#

using CefSharp.DevTools.CSS;
using HandyControl.Controls;
using HandyControl.Data;
using HandyControl.Tools;
using LiveTools.Data;
using Microsoft.Win32;
using ryCommon;
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.Shapes;
using System.Windows.Threading;
namespace LiveTools
{
/// <summary>
/// MainWindow2.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : HandyControl.Controls.Window
{
public MainWindow()
{
InitializeComponent();
this.Title = "紫林直播助手V"+RySoft.VersionStr;
//2 设置定时器时间间隔 TimeSpan.FromSeconds(1) 以秒单位
timer.Interval = TimeSpan.FromMilliseconds(1000);
//3 设置每隔时间要执行的方法 ,绑定方法到定时器上
//tick 是事件名, new System.EventHandler() 参数是方法名
timer.Tick += Timer_Tick;
Random rd=new Random();
RandMinute=rd.Next(0, 60);
}
/// <summary>
/// 软件启动时间
/// </summary>
private DateTime dt_SoftStart = DateTime.Now;
private int RandMinute = 0;
private void Timer_Tick(object sender, EventArgs e)
{
if(DateTime.Now.Minute== RandMinute && DateTime.Now.Second== dt_SoftStart.Second)
{
var th = new Thread(delegate() { API.CheckedLogin(out _); });
th.Start();
}
}
DispatcherTimer timer = new DispatcherTimer();
protected override void OnContentRendered(EventArgs e)
{
base.OnContentRendered(e);
//DataContext = ViewModelLocator.Instance.Main;
//NonClientAreaContent = new NonClientAreaContent();
ControlMain.Content = new Content.MainWinContent();
}
/// <summary>
/// 检查自动更新
/// </summary>
private void CheckUpdate(bool isSlient)
{
var th = new Thread(delegate () { Start(); });
th.Start();
void Start()
{
RyWeb.QuickWeb web=new RyWeb.QuickWeb();
var http= web.Get("http://reg.itjs.top/update/"+Config.SoftId+".json");
if(http.StatusCode== System.Net.HttpStatusCode.OK)
{
Json json = new Json(http.Html);
var new_ver = json.GetJsonValue("new_ver");
if(RySoft.CompareVer(RySoft.VersionStr, new_ver)==1)//如果存在新版
{
var update_date= json.GetJsonValue("update_date_str");//更新时间
var update_url = json.GetJsonValue("update_url");//更新网址
var mustupdate = json.GetJsonValue("mustupdate");//指定版本以下的必须更新
var is_must_update = false;//是否强制更新
if (RySoft.CompareVer(RySoft.VersionStr, mustupdate) == 1)
{
is_must_update = true;
}
var message = "发现存在新版[V" + new_ver + "],更新时间:" + update_date + "。";
Config.MustUpdate = is_must_update;
Config.NewVerUrl = update_url;
if (is_must_update)
{
message += "当前版本已经过老,必须更新后才能使用!";
}
else
{
message += "是否进行更新?";
}
if (!isSlient)
{
if (HandyControl.Controls.MessageBox.Show(new MessageBoxInfo
{
Message = message + "\r\n\r\n更新日志:\r\n" + json.GetJsonValue("update_desc", "暂无"),
Caption = "发现新版本",
Button = MessageBoxButton.YesNo,
IconBrushKey = ResourceToken.AccentBrush,
IconKey = ResourceToken.AskGeometry,
}) == MessageBoxResult.Yes)
{
RyFiles.OpenUrl(update_url);
}
}
else
{
Growl.Info(new GrowlInfo
{
Message = "[V" + new_ver + "]新版已推出,更新时间:" + update_date + "。\r\n更新日志:\r\n" + json.GetJsonValue("update_desc", "暂无"),
CancelStr = "取消",
ActionBeforeClose = isConfirmed =>
{
//Growl.Info(isConfirmed.ToString());
return true;
}
});
}
}
}
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
timer.Start();
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser,RegistryView.Registry64);
RegistryKey softwareRun = LMach.CreateSubKey("Software\\RySoft\\"+Config.SoftId, true);
if (softwareRun != null)
{
softwareRun.SetValue("InstallDir", Config.GetCurrentFolder);
}
softwareRun.Close();
LMach.Close();
}
catch
{
}
CheckUpdate(false);
}
}
}