通过本文主要向大家介绍了c语言,欲情 c max,crh2c,奔驰c200,85度c等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
通过某些手段后台更新软件。首先你要有一个放置新版本信息的网站
UpdateSoftwareForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CCWin;
using System.Net;
using System.Collections;
using System.IO;
using System.Xml;
using System.Diagnostics;
using System.Threading;
namespace WriteBook
{
public partial class UpdateSoftwareForm : Skin_Metro
{
public UpdateSoftwareForm()
{
InitializeComponent();
}
#region 一些对象和变量
//使用WebClient下载
WebClient client = new WebClient();
ArrayList downlist = new ArrayList();
//当前版本
string nowversion = null;
//最新版本
string latesversion = null;
#endregion
#region 获取版本号
/// <summary>
/// 从服务器上获取最新的版本号
/// </summary>
public void DownloadCheckUpdateXml()
{
try
{
//第一个参数是文件的地址,第二个参数是文件保存的路径文件名
client.DownloadFile("http://bbs.cloudtour.tk/SoftwareDownload/WriteBook/WriteBook2.xml", "WriteBook2.xml");
}
catch
{
MessageBox.Show("没有检测到更新。", "提示");
this.Close();
}
}
/// <summary>
/// 获取本地软件的版本号
/// </summary>
private void NowVersion()
{
nowversion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() + "\n";
LocalText.Text = nowversion;
}
/// <summary>
/// 读取从服务器获取的最新版本号
/// </summary>
public void LatestVersion()
{
try
{
if (File.Exists("WriteBook2.xml.xml"))
{
XmlDocument doc = new XmlDocument();
//加载要读取的XML
doc.Load("WriteBook2.xml.xml");
//获得根节点
XmlElement WriteBook = doc.DocumentElement;
//获得子节点 返回节点的集合
XmlNodeList Update = WriteBook.ChildNodes;
foreach (XmlNode item in Update)
{
latesversion = item.InnerText;
}
LatestText.Text = latesversion;
}
else
{
MessageBox.Show("没有检测到更新。", "提示");
this.Close();
}
}
catch
{
this.Close();
}
}
#endregion
#region 初始化程序
/// <summary>
/// 初始化程序
/// </summary>
private void InitializeandInstall()
{
UpdateProgressBar.Value = 20;
DownloadCheckUpdateXml();
UpdateProgressBar.Value = 40;
NowVersion();
UpdateProgressBar.Value = 60;
LatestVersion();
UpdateProgressBar.Value = 80;
DownloadInstall();
UpdateProgressBar.Value = 100;
}
#endregion
#region 安装and删除
/// <summary>
/// 下载安装包
/// </summary>
public void DownloadInstall()
{
try
{
if (nowversion == latesversion)
{
MessageBox.Show("您已经是最新版本。", "提示");
}
else if (nowversion != latesversion && File.Exists("WriteBook2.xml"))
{
MessageBox.Show("发现新版本,即将下载更新补丁。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
client.DownloadFile("http://bbs.cloudtour.tk/SoftwareDownload/WriteBook/WBsetup.exe", "WBsetup.exe");
if (File.Exists("Setup.exe"))
{
InstallandDelete();
}
else
{
for (int i = 1; i < 3; i++)
{
client.DownloadFile("http://bbs.cloudtour.tk/SoftwareDownload/WriteBook/WBsetup.exe", "WBsetup.exe");
}
MessageBox.Show("下载失败,请检查您的网络连接是否正常。", "提示");
this.Close();
}
}
}
catch
{
MessageBox.Show("更新失败,没有发现新版本。", "提示");
this.Close();
}
}
/// <summary>
/// 安装及删除
/// </summary>
private void InstallandDelete()
{
try
{
DialogResult dr = MessageBox.Show("下载更新成功,是否安装新更新?", "提示", MessageBoxButtons.YesNoCancel);
if (dr == System.Windows.Forms.DialogResult.Yes)
{
//启动安装程序
System.Diagnostics.Process.Start("WBsetup.exe");
Thread td = new Thread(JudgeInstall);
td.Start();
}
else { }
}
catch
{
MessageBox.Show("发生未知错误,更新失败。", "提示");
this.Close();
}
}
/// <summary>
/// 判断安装进程是否存在
/// </summary>
public void JudgeInstall()
{
while (true)
{
Process[] processList = Process.GetProcesses();
foreach (Process process in processList)
{
if (process.ProcessName == "WBsetup.exe") { }
else
{
DialogResult dr = MessageBox.Show("更新成功,是否删除安装包?", "提示", MessageBoxButtons.YesNo);
if (dr == System.Windows.Forms.DialogResult.Yes)
{
File.Delete("WBsetup.exe");
File.Delete("WriteBook2.xml");
}
}
}
}
}
#endregion
/// <summary>
/// 点击初始化程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UpdateButton_Click(object sender, EventArgs e)
{
InitializeandInstall();
}
}
}
</div>
以上所述就是本文的全部内容了,希望大家能够喜欢。
</div>
