using TemuKJD.BaseForms; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using AllBase.Helper; using NaiBa.Util.Helper; using System.IO; namespace TemuKJD { public partial class InitForm : LRBaseForm { InitFormSettings initFormSettings = new InitFormSettings(); public InitForm() { InitializeComponent(); Load += InitForm_Load; } private void InitForm_Load(object sender, EventArgs e) { if (File.Exists(System.Environment.CurrentDirectory + "\\YkdChoice.dll")) { this.panel3.Location = new Point(4, 4); this.panel4.Visible = true; } #if DEBUG this.panel3.Location = new Point(4, 4); this.panel4.Visible=true; this.rbDy.Visible = true; #endif initFormSettings = ConfigHelper.LoadConfig("initFormSettings"); if (initFormSettings == null) initFormSettings = new InitFormSettings(); this.chkRemember.Checked = initFormSettings.Remember; this.rbTemu.Checked = initFormSettings.LoginType.ToLower() == "temu"; this.rbPdd.Checked = initFormSettings.LoginType.ToLower() == "pdd"; this.rbDy.Checked = initFormSettings.LoginType.ToLower() == "dy"; this.rbTemu.CheckedChanged += rbTemu_CheckedChanged; this.rbPdd.CheckedChanged += rbTemu_CheckedChanged; this.rbDy.CheckedChanged += rbTemu_CheckedChanged; if (rbDy.Visible == false) flowLayoutPanel1.Location = new Point(38, flowLayoutPanel1.Location.Y); Task.Run(() => { while (!Work.Initialization.IsCheckFilesFinish || !Program.IsInit || this.progressBarX1.Value < 50) { Thread.Sleep(new Random().Next(10, 50)); Invoke(new Action(() => { this.progressBarX1.Value = Work.Initialization.InitPercent++; this.progressBarX1.Maximum = 50; })); if (this.progressBarX1.Value >= 50) Thread.Sleep(300); } Invoke(new Action(() => { btnOK.Visible = true; })); #if DEBUG Thread.Sleep(2500); #else if (File.Exists(System.Environment.CurrentDirectory + "\\YkdChoice.dll")) { Thread.Sleep(2500); } #endif if (initFormSettings.Remember) Thread.Sleep(500); Invoke(new Action(() => { if(initFormSettings.Remember && isChangeType == false) { OpenNewMainForm(); } })); }); } bool isOpen = false; void OpenNewMainForm() { if (isOpen) return; try { if (!Work.Initialization.IsCheckFilesSuccesss) { BaseMsgForm.ShowError("文件初始化失败,请检查是否有程序占用并使用管理员权限运行本程序!"); Process.GetCurrentProcess().Kill(); } this.Hide(); isOpen = true; new MainForm(initFormSettings.LoginType).ShowDialog(); } catch (Exception ex) { BaseMsgForm.ShowError(ex.Message); Process.GetCurrentProcess().Kill(); } } private void InitForm_FormClosed(object sender, FormClosedEventArgs e) { Process.GetCurrentProcess().Kill(); } private void btnOK_Click(object sender, EventArgs e) { if (isChangeType == false) OpenNewMainForm(); } private void chkRemember_CheckedChanged(object sender, EventArgs e) { initFormSettings.Remember = chkRemember.Checked; ConfigHelper.SaveConfig("initFormSettings", initFormSettings); } bool isChangeType = false; private void rbTemu_CheckedChanged(object sender, EventArgs e) { string newLoginType = "Temu"; if (sender == rbTemu && rbTemu.Checked) newLoginType = "Temu"; else if (sender == rbPdd && rbPdd.Checked) newLoginType = "Pdd"; else if (sender == rbDy && rbDy.Checked) newLoginType = "Dy"; if (initFormSettings.LoginType != newLoginType) { isChangeType = true; initFormSettings.LoginType = newLoginType; ConfigHelper.SaveConfig("initFormSettings", initFormSettings); BaseMsgForm.ShowInfo("更改了平台,需要重新启动"); { System.Diagnostics.Process.Start(Process.GetCurrentProcess().MainModule.FileName); Application.Exit(); } } } } class InitFormSettings { public string LoginType { get; set; } = "Temu"; public bool Remember { get; set; } = true; } }