FormUpdate.cs
上传用户:lqb116
上传日期:2014-04-04
资源大小:2712k
文件大小:6k
源码类别:

P2P编程

开发平台:

C#

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Net;
  7. namespace LanMsg
  8. {
  9. /// <summary>
  10. /// FormUpdate 的摘要说明。
  11. /// </summary>
  12. public class FormUpdate : System.Windows.Forms.Form
  13. {
  14. private System.Windows.Forms.GroupBox groupBox1;
  15. private System.Windows.Forms.Label label1;
  16. private LanMsg.XpProgressBar.XpProgressBar ProgressBar1;
  17. private System.Windows.Forms.Timer timerFileInfo;
  18. private System.Windows.Forms.Button butOk;
  19. private System.ComponentModel.IContainer components;
  20. public FormUpdate()
  21. {
  22. //
  23. // Windows 窗体设计器支持所必需的
  24. //
  25. InitializeComponent();
  26. //
  27. // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
  28. //
  29. }
  30. /// <summary>
  31. /// 清理所有正在使用的资源。
  32. /// </summary>
  33. protected override void Dispose( bool disposing )
  34. {
  35. if( disposing )
  36. {
  37. if(components != null)
  38. {
  39. components.Dispose();
  40. }
  41. }
  42. base.Dispose( disposing );
  43. }
  44. #region Windows 窗体设计器生成的代码
  45. /// <summary>
  46. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  47. /// 此方法的内容。
  48. /// </summary>
  49. private void InitializeComponent()
  50. {
  51. this.components = new System.ComponentModel.Container();
  52. this.groupBox1 = new System.Windows.Forms.GroupBox();
  53. this.butOk = new System.Windows.Forms.Button();
  54. this.ProgressBar1 = new LanMsg.XpProgressBar.XpProgressBar();
  55. this.label1 = new System.Windows.Forms.Label();
  56. this.timerFileInfo = new System.Windows.Forms.Timer(this.components);
  57. this.groupBox1.SuspendLayout();
  58. this.SuspendLayout();
  59. // 
  60. // groupBox1
  61. // 
  62. this.groupBox1.Controls.Add(this.butOk);
  63. this.groupBox1.Controls.Add(this.ProgressBar1);
  64. this.groupBox1.Controls.Add(this.label1);
  65. this.groupBox1.Location = new System.Drawing.Point(18, 11);
  66. this.groupBox1.Name = "groupBox1";
  67. this.groupBox1.Size = new System.Drawing.Size(256, 120);
  68. this.groupBox1.TabIndex = 0;
  69. this.groupBox1.TabStop = false;
  70. this.groupBox1.Text = "升级信息";
  71. // 
  72. // butOk
  73. // 
  74. this.butOk.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
  75. this.butOk.Location = new System.Drawing.Point(92, 88);
  76. this.butOk.Name = "butOk";
  77. this.butOk.Size = new System.Drawing.Size(72, 24);
  78. this.butOk.TabIndex = 2;
  79. this.butOk.Text = "确定";
  80. this.butOk.Click += new System.EventHandler(this.butOk_Click);
  81. // 
  82. // ProgressBar1
  83. // 
  84. this.ProgressBar1.ColorBackGround = System.Drawing.Color.White;
  85. this.ProgressBar1.ColorBarBorder = System.Drawing.Color.FromArgb(((System.Byte)(170)), ((System.Byte)(240)), ((System.Byte)(170)));
  86. this.ProgressBar1.ColorBarCenter = System.Drawing.Color.FromArgb(((System.Byte)(10)), ((System.Byte)(150)), ((System.Byte)(10)));
  87. this.ProgressBar1.ColorText = System.Drawing.Color.Black;
  88. this.ProgressBar1.Location = new System.Drawing.Point(29, 59);
  89. this.ProgressBar1.Name = "ProgressBar1";
  90. this.ProgressBar1.Position = 0;
  91. this.ProgressBar1.PositionMax = 100;
  92. this.ProgressBar1.PositionMin = 0;
  93. this.ProgressBar1.Size = new System.Drawing.Size(198, 16);
  94. this.ProgressBar1.TabIndex = 1;
  95. // 
  96. // label1
  97. // 
  98. this.label1.Location = new System.Drawing.Point(8, 17);
  99. this.label1.Name = "label1";
  100. this.label1.Size = new System.Drawing.Size(240, 31);
  101. this.label1.TabIndex = 0;
  102. this.label1.Text = "    LanMsg已检测到最新的版本,请单击确定按钮,下载更新程序。";
  103. // 
  104. // timerFileInfo
  105. // 
  106. this.timerFileInfo.Interval = 200;
  107. this.timerFileInfo.Tick += new System.EventHandler(this.timerFileInfo_Tick);
  108. // 
  109. // FormUpdate
  110. // 
  111. this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  112. this.ClientSize = new System.Drawing.Size(292, 143);
  113. this.ControlBox = false;
  114. this.Controls.Add(this.groupBox1);
  115. this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
  116. this.MaximizeBox = false;
  117. this.MinimizeBox = false;
  118. this.Name = "FormUpdate";
  119. this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
  120. this.Text = "LanMsg 智能更新程序";
  121. this.TopMost = true;
  122. this.Load += new System.EventHandler(this.FormUpdate_Load);
  123. this.groupBox1.ResumeLayout(false);
  124. this.ResumeLayout(false);
  125. }
  126. #endregion
  127. private string address= "http://www.163.com/s/LanMsgUpdate.exe";//要下载的升级包网址
  128. private string downloadFile=Application.StartupPath +"\LanMsgUpdate.exe" ;//设置下载软件保存的路径
  129.         private long DownLoadFileSize=0;
  130. private void FormUpdate_Load(object sender, System.EventArgs e)
  131. {
  132. try
  133. {
  134. if(System.IO.File.Exists(downloadFile))
  135. System.IO.File.Delete(downloadFile);//如果旧的更新包
  136. DownLoadFileSize=GetDownLoadFileSize();//获得下载文件大小 
  137. this.ProgressBar1.PositionMax =(int)DownLoadFileSize;
  138. }
  139. catch{}
  140. }
  141. private void DownLoad()//执行下载任务
  142. {
  143. WebClient dfile = new WebClient(); //实例化WebClient类
  144. dfile.DownloadFile(this.address,this.downloadFile);//下载指定nrl地址的文件 
  145.             this.Hide();
  146. MessageBox.Show("LanMsg升级包已经下载完成,单击确定执行更新。","升级提示",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Information );
  147. System.Diagnostics.Process.Start(downloadFile);//运行刚更新的应用程序
  148. this.Close();
  149. }
  150. private void DownLoadProcess() //获得正在下载的文件的已下载大小
  151. {
  152. if(!System.IO.File.Exists(downloadFile))return;
  153. System.IO.FileInfo fileinfo=new System.IO.FileInfo(downloadFile);
  154. this.ProgressBar1.Position=(int)fileinfo.Length;
  155. }
  156. private long GetDownLoadFileSize()//获得下载文件大小 
  157. {
  158. WebRequest th= WebRequest.Create(address);//
  159. WebResponse w  = th.GetResponse();
  160. return w.ContentLength;
  161. }
  162. private void timerFileInfo_Tick(object sender, System.EventArgs e)
  163. {
  164. DownLoadProcess();
  165. }
  166. private void butOk_Click(object sender, System.EventArgs e)
  167. {
  168. this.butOk.Enabled=false;
  169. this.label1.Text="正在下载LanMsg更新程序包...";
  170. this.timerFileInfo.Enabled=true;
  171. System.Threading.Thread t = new  System.Threading.Thread(new System.Threading.ThreadStart(DownLoad));
  172. t.Start();//执行下载任务
  173. }
  174. }
  175. }