Beispiel #1
0
 public FontForm()
 {
     InitializeComponent();
     cloudJson = GetData.Get("https://download.3tme.cn/FontsInstall/data.json", true);//获取数据
     if (cloudJson == "Error" || cloudJson == null)
     {
         FrmDialog.ShowDialog(this, "无法获取云端数据,下载链接与视频教程链接无法从云端获取\n\n已启用离线模式,链接均采用本地形式,如链接失效请访问:doc.3tme.cn\n\n", "Ares");
     }
     else
     {
         fontsData = JsonConvert.DeserializeObject <FontsData>(cloudJson);
     }
 }
Beispiel #2
0
        #pragma warning restore IDE0044

        #region 登录窗口载入
        /// <summary>
        /// 登录窗口载入
        /// </summary>
        public LoginForm()
        {
            InitializeComponent();

            //允许线程操作窗口控件
            Control.CheckForIllegalCrossThreadCalls = false;

            //设置窗口的拖动
            InitFormMove(this);
            InitFormMove(pictureBox);

            string cloudRoot = GetData.Get("https://download.3tme.cn/Ares/RootData.json", true);//获取WeiApi地址原始数据

            //判断取回数据是否有错,有错则报错然后结束进程
            if (cloudRoot == "Error" || cloudRoot == null)
            {
                this.Visible = false;
                this.Enabled = false;
                if (FrmDialog.ShowDialog(this, "Ares当前无法获取系统重要云端数据\n\n点击\"确定\"按钮为您打开相关解决方法的网页链接\n\n点击\"取消\"按钮退出Ares软件", "Ares - 致命错误", true) == DialogResult.OK)
                {
                    System.Diagnostics.Process.Start("https://tz.3tme.cn/error-information/server-connection-failed.html");
                }
                Environment.Exit(0);
            }
            Root          = JsonConvert.DeserializeObject <RootData>(cloudRoot); //解析Json数据
            webApiUrlData = Root.WebApiUrlData;                                  //提取Root中的WebApi部分
            Verify        = new VerifyFunction(webApiUrlData);                   //实例化网络验证对象

            //读取已保存卡密
            var uKey = OperateIniFile.ReadIniData("Ares", "Key", "", "logindata.ini");

            if (uKey.Length > 0)
            {
                ucTextBoxEx_Key.InputText = Decrypt.DES(uKey, "areskeys");
            }

            //通过Lambda表达式创建线程获取云通知
            Thread cloudNotificationThread = new Thread(() =>
            {
                cloudNotificationData = Root.CloudNotificationData;//提取Root中的cloudNotificationData

                //判断信息框的操作
                if (cloudNotificationData.MsgBox.Switch == "1")
                {
                    switch (cloudNotificationData.MsgBox.Type)
                    {
                    case "1":
                        {
                            //仅弹窗提示
                            FrmDialog.ShowDialog(this, cloudNotificationData.MsgBox.Content.Replace("*", "\n"), cloudNotificationData.MsgBox.Title);
                            break;
                        }

                    case "2":
                        {
                            //弹窗提示+是否打开链接
                            if (FrmDialog.ShowDialog(this, cloudNotificationData.MsgBox.Content.Replace("*", "\n"), cloudNotificationData.MsgBox.Title, true) == DialogResult.OK)
                            {
                                System.Diagnostics.Process.Start(cloudNotificationData.MsgBox.Link);
                            }
                            break;
                        }

                    case "3":
                        {
                            //直接打开链接
                            System.Diagnostics.Process.Start(cloudNotificationData.MsgBox.Link);
                            break;
                        }
                    }
                }

                //判断按钮的操作,接下来的操作要写在按钮被点击的方法里
                if (cloudNotificationData.Button.Switch == "1")
                {
                    ucBtnExt_CloudNotification.Location = new Point(224, 485);   //设置按钮位置正常
                    ucBtnExt_CloudNotification.BtnText  = cloudNotificationData.Button.Text;
                }

                //判断标签的操作,接下来的操作要写在按钮被点击的方法里
                if (cloudNotificationData.Label.Switch == "1")
                {
                    label_CloudNotification.Location  = new Point(-10, 494);   //设置标签可视
                    label_CloudNotification.Text      = cloudNotificationData.Label.Text;
                    label_CloudNotification.ForeColor = Color.FromArgb(cloudNotificationData.Label.Color.R, cloudNotificationData.Label.Color.G, cloudNotificationData.Label.Color.B);
                }
            });

            cloudNotificationThread.Start();

            //通过Lambda表达式创建线程检测版本更新
            Thread checkVersionThread = new Thread(() => {
                string result = Verify.VersionCheck(localVersion);
                //1为最新版,0为不是最新版,-1为出错
                //1就直接跳出循环,0载入更新窗口,-1报错然后退出程序
                //后期预想:0载入更新窗口,窗口中显示新版本更新内容,目前只要弹窗告诉不是最新版然后弹下载地址就好
                switch (result)
                {
                case "1":
                    {
                        break;
                    }

                case "0":
                    {
                        this.Visible = false;
                        if (FrmDialog.ShowDialog(this, "检测到当前Ares版本不是最新版\n\n点击\"确定\"按钮为您打开最新版下载链接\n\n点击\"取消\"按钮退出Ares软件", "Ares - 版本更新", true) == DialogResult.OK)
                        {
                            System.Diagnostics.Process.Start("https://wp.3tme.cn/");
                        }
                        Environment.Exit(0);
                        break;
                    }

                case "-1":
                    {
                        this.Visible = false;
                        if (FrmDialog.ShowDialog(this, "Ares当前无法连接至验证服务器\n\n点击\"确定\"按钮为您打开相关解决方法的网页链接\n\n点击\"取消\"按钮退出Ares软件", "Ares - 致命错误", true) == DialogResult.OK)
                        {
                            System.Diagnostics.Process.Start("https://tz.3tme.cn/error-information/verify-server-connection-failed.html");
                        }
                        Environment.Exit(0);
                        break;
                    }
                }
            });

            checkVersionThread.Start();
        }
Beispiel #3
0
        public object _ToastLocker = new object(); //Toast通知锁
        public MainForm(UserLoginData ud)
        {
            InitializeComponent();

            userLoginData = ud;

            //允许线程操作窗口控件
            Control.CheckForIllegalCrossThreadCalls = false;

            #region 设置窗口的拖动
            //设置窗口的拖动
            InitFormMove(this);
            InitFormMove(tabPage1);
            InitFormMove(tabPage2);
            InitFormMove(tabPage3);
            InitFormMove(tabPage4);
            InitFormMove(label_welcome);
            InitFormMove(label_leftTimelabel);
            InitFormMove(label_days);
            InitFormMove(label_leftTime);
            InitFormMove(ucPanelQuote_Bulletin);
            //InitFormMove(label_bulletin);
            #endregion

            List <KeyValuePair <string, string> > lstHL = new List <KeyValuePair <string, string> >();
            lstHL.Add(new KeyValuePair <string, string>("1", "  Ares  "));
            lstHL.Add(new KeyValuePair <string, string>("2", "  功能页面  "));
            lstHL.Add(new KeyValuePair <string, string>("3", "  云端参数  "));
            lstHL.Add(new KeyValuePair <string, string>("4", "  联系信息  "));
            this.ucHorizontalList.DataSource = lstHL;

            //去除TagPage选项卡
            this.tabControl.Region = new Region(new RectangleF(this.tabPage1.Left, this.tabPage1.Top, this.tabPage1.Width, this.tabPage1.Height));

            //倒计时与判断到期线程
            Thread countDownThread = new Thread(() =>
            {
                TimeSpan ts = userLoginData.ExpiredTime.Subtract(Convert.ToDateTime(GetData.GetNetDateTime()));
                //VIP永久卡用户专属问候
                if (ts.Days > 2)
                {
                    label_days.Text      = string.Format("{0} Days", ts.Days.ToString());
                    label_leftTime.Text  = string.Format("{0} Hours,{1} Minutes,{2} Seconds", ts.Hours.ToString(), ts.Minutes.ToString(), ts.Seconds.ToString());
                    string sourceVIPData = GetData.Get("https://download.3tme.cn/Ares/VipData.json", true);
                    VIPNotificationData vIPNotificationData = JsonConvert.DeserializeObject <VIPNotificationData>(sourceVIPData);
                    if (vIPNotificationData.Switch == "1")
                    {
                        //替换{UserType}
                        if (vIPNotificationData.Title.Contains("{UserType}"))
                        {
                            if (ts.Days > 365)
                            {
                                vIPNotificationData.Title = vIPNotificationData.Title.Replace("{UserType}", "永久卡用户");
                            }
                            else
                            {
                                vIPNotificationData.Title = vIPNotificationData.Title.Replace("{UserType}", "VIP用户");
                            }
                        }
                        //替换{TimeGreeting}
                        if (vIPNotificationData.Title.Contains("{TimeGreeting}"))
                        {
                            int hour = DateTime.Now.Hour;
                            if (hour >= 0 && hour <= 6)
                            {
                                vIPNotificationData.Title = vIPNotificationData.Title.Replace("{TimeGreeting}", vIPNotificationData.TimeGreeting.Midnight);
                            }

                            if (hour >= 7 && hour <= 12)
                            {
                                vIPNotificationData.Title = vIPNotificationData.Title.Replace("{TimeGreeting}", vIPNotificationData.TimeGreeting.Noon);
                            }

                            if (hour >= 13 && hour <= 17)
                            {
                                vIPNotificationData.Title = vIPNotificationData.Title.Replace("{TimeGreeting}", vIPNotificationData.TimeGreeting.AfterNoon);
                            }

                            if (hour >= 18 && hour <= 23)
                            {
                                vIPNotificationData.Title = vIPNotificationData.Title.Replace("{TimeGreeting}", vIPNotificationData.TimeGreeting.Evening);
                            }
                        }
                        lock (_ToastLocker)
                        {
                            Toast.ShowNotifiy(vIPNotificationData.Title, vIPNotificationData.Text.Replace("*", Environment.NewLine), this.Icon, vIPNotificationData.Timeout);
                        }
                    }
                }
                //倒计时启动
                label_days.Text = string.Format("{0} Days", ts.Days.ToString());
                TimeSpan tss    = new TimeSpan(0, 0, 0, 1);
                while (ts.TotalSeconds > 0)
                {
                    ts = ts.Subtract(tss);
                    label_days.Text     = string.Format("{0} Days", ts.Days.ToString());
                    label_leftTime.Text = string.Format("{0} Hours,{1} Minutes,{2} Seconds", ts.Hours.ToString(), ts.Minutes.ToString(), ts.Seconds.ToString());
                    Thread.Sleep(1000);
                }
                //跳出了循环则说明到期了,结束CSGO进程并弹出到期网页
                foreach (var csgoProcess in System.Diagnostics.Process.GetProcessesByName("notepad"))
                {
                    try
                    {
                        // 杀掉这个进程
                        csgoProcess.Kill();

                        // 等待进程被杀掉
                        csgoProcess.WaitForExit();
                    }
                    catch (InvalidOperationException)
                    {
                        // 进程已经退出或不存在
                        System.Diagnostics.Process.Start("https://tz.3tme.cn/error-information/expired.html");
                        this.Visible = false;
                        Environment.Exit(0);
                    }
                    finally
                    {
                        System.Diagnostics.Process.Start("https://tz.3tme.cn/error-information/expired.html");
                        this.Visible = false;
                        Environment.Exit(0);
                    }
                }
            });

            Thread bulletinThread = new Thread(() =>
            {
                string sourceBulletin = LoginForm.Verify.GetBulletin();
                bulletin                 = JsonConvert.DeserializeObject <CloudBulletin>(sourceBulletin);
                label_bulletin.Text      = bulletin.Label.Content.Replace("*", Environment.NewLine);
                label_bulletin.ForeColor = Color.FromArgb(bulletin.Label.Color.R, bulletin.Label.Color.G, bulletin.Label.Color.B);
                if (bulletin.NotifyIcon.Switch == "1")
                {
                    lock (_ToastLocker)
                    {
                        Toast.ShowNotifiy(bulletin.NotifyIcon.Title, bulletin.NotifyIcon.Text.Replace("*", Environment.NewLine), this.Icon, bulletin.NotifyIcon.Timeout);
                    }
                }
            });
            countDownThread.Start();
            bulletinThread.Start();
        }