示例#1
0
 private void check_ver()
 {
     l_ver.Content = m_ver.ver_string;
     if (m_other_vers.Count > 0)
     {
         m_gver = m_other_vers[0];
         m_other_vers.RemoveAt(0);
         l_state.Content = "正在更新版本到 " + m_gver.ver_string;
         WebClient wc = new WebClient();
         if (!Directory.Exists("download"))
         {
             Directory.CreateDirectory("download");
         }
         string name = m_gver.file.Substring(m_gver.file.LastIndexOf("/") + 1);
         wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
         wc.DownloadFileCompleted   += new AsyncCompletedEventHandler(webClient_DownloadFileCompleted);
         wc.DownloadFileAsync(new Uri(m_gver.file), "download/" + name);
         l_progress.Value = 0;
     }
     else
     {
         l_state.Content   = "更新完成";
         l_start.IsEnabled = true;
     }
 }
示例#2
0
 private void ver_callback(IAsyncResult result)
 {
     try
     {
         HttpWebRequest request = (HttpWebRequest)(result.AsyncState);
         StreamReader   sr      = new StreamReader(request.EndGetResponse(result).GetResponseStream());
         string         data    = sr.ReadToEnd();
         XmlDocument    xmldoc  = new XmlDocument();
         xmldoc.LoadXml(data);
         XmlNodeList xnl = xmldoc.SelectNodes("vers/ver");
         for (int i = 0; i < xnl.Count; i++)
         {
             XmlNode xn = xnl.Item(i);
             s_ver   v  = new s_ver();
             v.ver_string = xn.Attributes["v"].Value;
             v.ver        = get_ver(v.ver_string);
             v.file       = xn.Attributes["file"].Value;
             if (v.ver > m_ver.ver)
             {
                 m_other_vers.Add(v);
             }
         }
     }
     catch
     {
         Dispatcher.BeginInvoke(new Action(() =>
         {
             l_state.Content = "获取版本信息失败";
             MessageBox.Show("获取版本信息失败");
         }));
         return;
     }
     Dispatcher.BeginInvoke(new Action(() =>
     {
         check_ver();
     }));
 }
示例#3
0
 private void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
 {
     Dispatcher.BeginInvoke(new Action(() =>
     {
         string path = m_gver.file.Substring(m_gver.file.LastIndexOf("/") + 1);
         path        = "download/" + path;
         if (utils.UnZip(path, "./main"))
         {
             l_progress.Value = 100;
             m_ver            = m_gver;
             FileStream fs    = new FileStream("ver", FileMode.Open, FileAccess.Write);
             StreamWriter sw  = new StreamWriter(fs);
             sw.Write(m_ver.ver_string);
             sw.Close();
             fs.Close();
             check_ver();
         }
         else
         {
             l_state.Content = "解压失败";
             MessageBox.Show("解压失败");
         }
     }));
 }