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

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.Data;
  7. namespace LanMsgUpdate
  8. {
  9. /// <summary>
  10. /// Form1 的摘要说明。
  11. /// </summary>
  12. public class FormMain : System.Windows.Forms.Form
  13. {
  14. private System.Windows.Forms.GroupBox groupBox1;
  15. private System.Windows.Forms.Label label1;
  16. /// <summary>
  17. /// 必需的设计器变量。
  18. /// </summary>
  19. private System.ComponentModel.Container components = null;
  20. public FormMain()
  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.groupBox1 = new System.Windows.Forms.GroupBox();
  52. this.label1 = new System.Windows.Forms.Label();
  53. this.groupBox1.SuspendLayout();
  54. this.SuspendLayout();
  55. // 
  56. // groupBox1
  57. // 
  58. this.groupBox1.Controls.Add(this.label1);
  59. this.groupBox1.Location = new System.Drawing.Point(17, 11);
  60. this.groupBox1.Name = "groupBox1";
  61. this.groupBox1.Size = new System.Drawing.Size(256, 56);
  62. this.groupBox1.TabIndex = 0;
  63. this.groupBox1.TabStop = false;
  64. this.groupBox1.Text = "升级状态";
  65. // 
  66. // label1
  67. // 
  68. this.label1.Location = new System.Drawing.Point(8, 24);
  69. this.label1.Name = "label1";
  70. this.label1.Size = new System.Drawing.Size(232, 16);
  71. this.label1.TabIndex = 0;
  72. this.label1.Text = "正在安装升级包...";
  73. // 
  74. // FormMain
  75. // 
  76. this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  77. this.ClientSize = new System.Drawing.Size(290, 79);
  78. this.ControlBox = false;
  79. this.Controls.Add(this.groupBox1);
  80. this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
  81. this.Name = "FormMain";
  82. this.Opacity = 0;
  83. this.ShowInTaskbar = false;
  84. this.Text = "LanMsg 智能更新程序";
  85. this.Load += new System.EventHandler(this.FormMain_Load);
  86. this.groupBox1.ResumeLayout(false);
  87. this.ResumeLayout(false);
  88. }
  89. #endregion
  90. /// <summary>
  91. /// 应用程序的主入口点。
  92. /// </summary>
  93. [STAThread]
  94. static void Main() 
  95. {
  96. Application.Run(new FormMain());
  97. }
  98. private void FormMain_Load(object sender, System.EventArgs e)
  99. {
  100. KillLanMsgProcess();//关闭所有正在运行的LanMsg进程
  101.             DeCompress();//将新版本的LanMsg文件写入当前目录,并运行新版本的应用程序
  102. }
  103. private void KillLanMsgProcess()//关闭所有正在运行的LanMsg进程
  104. {
  105. System.Diagnostics.Process[] pTemp = System.Diagnostics.Process.GetProcesses();
  106. foreach(System.Diagnostics.Process pTempProcess in pTemp)
  107. if ((pTempProcess.ProcessName.ToLower() == ("LanMsg").ToLower()) || (pTempProcess.ProcessName.ToLower()) == ("LanMsg.exe").ToLower()) 
  108.    pTempProcess.Kill();
  109. }
  110. private void DeCompress()//将资源文件写入当前目录
  111. {
  112. string TempFile=Application.StartupPath +"\LanMsg.exe";
  113.        
  114. System.Threading.Thread.Sleep(10000);
  115. if(System.IO.File.Exists(TempFile))//删除当前目录低版本的 LanMsg
  116. System.IO.File.Delete(TempFile);
  117. byte[] b=new byte[1];
  118. if(!System.IO.File.Exists(TempFile))
  119. {
  120. System.IO.Stream tobjStream=System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("LanMsgUpdate.LanMsg.exe");
  121. System.IO.Stream f =new System.IO.FileStream(TempFile, System.IO.FileMode.CreateNew);
  122. long fLength=tobjStream.Length;
  123. for(int i=0;i<fLength;i++)
  124. {
  125. tobjStream.Read(b,0,1);
  126. f.WriteByte(b[0]) ;
  127. }
  128. f.Flush();
  129. f.Close();
  130. tobjStream.Close();
  131. System.Diagnostics.Process.Start(TempFile);//运行刚更新的应用程序
  132. }
  133. Application.Exit();
  134. }
  135. }
  136. }