コード例 #1
0
ファイル: AutoUpdate.cs プロジェクト: fenildf/PVZOnlineTool
        /// <summary>
        /// 启动自动更新
        /// </summary>
        internal static void start()
        {
            try {
                TextReader textReader = new StreamReader("questions.txt");
                AutoUpdate autoUpdate = new AutoUpdate(textReader);
                textReader.Close();

                autoUpdate.startAutoUpdate();
            } catch (Exception e) {
                MessageBox.Show(e.ToString(), "自动更新时发生了一个未处理的错误(Ctrl + C 可复制详细信息)", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #2
0
ファイル: AutoUpdate.cs プロジェクト: fenildf/PVZOnlineTool
        /// <summary>
        /// 开始自动更新题库
        /// </summary>
        internal void startAutoUpdate()
        {
            // 如果题库中包含了有效的自动更新头
            if (this.ok)
            {
                // 5秒钟后如果自动更新还没有完成会提示“正在检查更新...”
                Program.mainForm.defaultTitle = "正在检查更新...";
                new Thread(AutoUpdate.setMainFormTitle).Start();

                // 开始自动更新
                try {
                    // 下载指定 URL 的新题库
                    string fileData = AutoUpdate.httpDownloadFile(this.url);

                    // 通过新题库实例化一个 AutoUpdate
                    TextReader textReader = new StringReader(fileData);
                    AutoUpdate autoUpdate = new AutoUpdate(textReader);
                    textReader.Close();

                    // 检查是否需要更新
                    if (autoUpdate.ok && autoUpdate.version > this.version)
                    {
                        // 保存新题库
                        StreamWriter sw = new StreamWriter("questions.txt", false);
                        sw.Write(fileData);
                        sw.Close();

                        // 切换当前使用的题库到新版本
                        Program.mainForm.questions    = new Questions();
                        Program.mainForm.defaultTitle = "题库已更新:" + this.version + " -> " + autoUpdate.version;
                    }
                    else
                    {
                        Program.mainForm.defaultTitle = "题库已是最新版本:" + this.version;
                    }
                } catch {
                    Program.mainForm.defaultTitle = "题库自动更新失败";
                }
            }
            else
            {
                Program.mainForm.defaultTitle = "未开启自动更新或自动更新设置有误";
            }

            // 更新 MainForm 标题
            AutoUpdate.setMainFormTitle();
        }