230 lines
9.4 KiB
C#
230 lines
9.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
namespace LiveUpdate
|
|
{
|
|
public partial class frmUpdateFile : Form
|
|
{
|
|
ryCommon.clsStorage MyXml = new ryCommon.clsStorage();
|
|
string xmlPath;
|
|
public frmUpdateFile()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
public double ConvertDouble(string Str, double defValue)
|
|
{
|
|
try
|
|
{
|
|
return Convert.ToDouble(Str);
|
|
}
|
|
catch
|
|
{
|
|
return defValue;
|
|
}
|
|
}
|
|
public DateTime ConvertDateTime(string Str, DateTime defValue)
|
|
{
|
|
try
|
|
{
|
|
return Convert.ToDateTime(Str);
|
|
}
|
|
catch
|
|
{
|
|
return defValue;
|
|
}
|
|
}
|
|
private void LoadDb(string filePath)
|
|
{
|
|
Text = "软件更新信息设置(" + System.IO.Path.GetFileName(filePath) + ")";
|
|
int iResult = MyXml.LoadFromFile(filePath);
|
|
if (iResult == 0) { MyXml.LoadFromXMLText("<root></root>"); }
|
|
//软件版本
|
|
MyXml.SelectNode2("id", "SoftVer");
|
|
if (IsNumeric(MyXml.GetAttrValue("Value", "0")) == true)
|
|
{
|
|
cmbNewVer.Text = MyXml.GetAttrValue("Value", "0");
|
|
}
|
|
|
|
//软件版本
|
|
MyXml.SelectNode2("id", "ReVer");
|
|
if (IsNumeric(MyXml.GetAttrValue("Value", "0")) == true)
|
|
{
|
|
cmbNewReVer.Text = MyXml.GetAttrValue("Value", "0");
|
|
}
|
|
//数据库版本
|
|
MyXml.SelectNode2("id", "DataVer");
|
|
cmbNewDbVer.Text = ConvertDouble(MyXml.GetAttrValue("Value", "0"), 0).ToString();
|
|
//软件更新地址
|
|
MyXml.SelectNode2("id", "FileUpdateUrl");
|
|
cmbProcUpdateUrl.Text = MyXml.GetAttrValue("Value", "");
|
|
//数据库更新地址
|
|
MyXml.SelectNode2("id", "DbUpdateUrl");
|
|
cmbDbUpdateUrl.Text = MyXml.GetAttrValue("Value", "");
|
|
//软件日期
|
|
MyXml.SelectNode2("id", "SoftDate");
|
|
dtNewProcDate.Value = ConvertDateTime(MyXml.GetAttrValue("Value", DateTime.Now.ToString()), DateTime.Now);
|
|
//数据库日期
|
|
MyXml.SelectNode2("id", "DataDate");
|
|
dtNewDataDate.Value = ConvertDateTime(MyXml.GetAttrValue("Value", DateTime.Now.ToString()), DateTime.Now);
|
|
//软件更新描述
|
|
MyXml.SelectNode2("id", "SoftUpdateDes");
|
|
txtUpdateDes.Text = MyXml.GetAttrValue("Value", "");
|
|
//数据库更新描述
|
|
MyXml.SelectNode2("id", "DataUpdateDes");
|
|
txtDbUpdateDes.Text = MyXml.GetAttrValue("Value", "");
|
|
|
|
MyXml.SelectNode2("id", "SettingXML");
|
|
ryCommon.clsStorage tStor = new ryCommon.clsStorage(MyXml.GetAttrValue("Value", ""));
|
|
//升级前要结束的进程
|
|
tStor.SelectNode("id", "KillProcList");
|
|
txtKillProcList.Text = tStor.GetAttrValue("Value", "");
|
|
//要启动的主程序
|
|
tStor.SelectNode("id", "MainProcName");
|
|
txtMainProcName.Text = tStor.GetAttrValue("Value", "");
|
|
LoadOem();
|
|
}
|
|
private void frmUpdateFile_Load(object sender, EventArgs e)
|
|
{
|
|
DirectoryInfo directory = new DirectoryInfo(Application.StartupPath);
|
|
string FileName="";
|
|
comboBox1.Items.Clear();
|
|
foreach (FileInfo info in directory.GetFiles("*.xml"))
|
|
{
|
|
comboBox1.Items.Add(info.Name);
|
|
}
|
|
if (comboBox1.Items.Count > 0)
|
|
{
|
|
comboBox1.SelectedIndex = 0;
|
|
xmlPath = Application.StartupPath + "\\" + comboBox1.Text; FileName = comboBox1.Text;
|
|
}
|
|
else
|
|
{
|
|
xmlPath = Application.StartupPath + "\\Update.xml"; FileName = "Update.xml";
|
|
}
|
|
LoadDb(xmlPath);
|
|
|
|
}
|
|
private bool IsNumeric(string Str)
|
|
{
|
|
try
|
|
{
|
|
Convert.ToDouble(Str);
|
|
return true;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
private void button2_Click(object sender, EventArgs e)
|
|
{
|
|
if (IsNumeric(cmbNewVer.Text) == false)
|
|
{
|
|
MessageBox.Show("【软件版本】必须为数字。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
return;
|
|
}
|
|
if (IsNumeric(cmbNewReVer.Text) == false)
|
|
{
|
|
MessageBox.Show("【软件修正版本】必须为数字。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
return;
|
|
}
|
|
if (IsNumeric(cmbNewDbVer.Text) == false)
|
|
{
|
|
MessageBox.Show("【数据库版本】必须为数字。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
return;
|
|
}
|
|
if (cmbProcUpdateUrl.Text== "")
|
|
{
|
|
MessageBox.Show("【软件更新地址】不能为空。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
return;
|
|
}
|
|
if (cmbDbUpdateUrl.Text == "")
|
|
{
|
|
MessageBox.Show("【数据库更新地址】不能为空。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
return;
|
|
}
|
|
MyXml.LoadFromXMLText("<root></root>");
|
|
MyXml.AddNode2("id", "SoftVer");
|
|
MyXml.SetAttrValue("Value", cmbNewVer.Text);
|
|
MyXml.AddNode2("id", "ReVer");
|
|
MyXml.SetAttrValue("Value", cmbNewReVer.Text);
|
|
MyXml.AddNode2("id", "DataVer");
|
|
MyXml.SetAttrValue("Value", cmbNewDbVer.Text);
|
|
MyXml.AddNode2("id", "FileUpdateUrl");
|
|
MyXml.SetAttrValue("Value", cmbProcUpdateUrl.Text);
|
|
MyXml.AddNode2("id", "DbUpdateUrl");
|
|
MyXml.SetAttrValue("Value", cmbDbUpdateUrl.Text);
|
|
MyXml.AddNode2("id", "SoftDate");
|
|
MyXml.SetAttrValue("Value", dtNewProcDate.Value.Date.ToString());
|
|
MyXml.AddNode2("id", "DataDate");
|
|
MyXml.SetAttrValue("Value", dtNewDataDate.Value.Date.ToString());
|
|
MyXml.AddNode2("id", "SoftUpdateDes");
|
|
MyXml.SetAttrValue("Value", txtUpdateDes.Text);
|
|
MyXml.AddNode2("id", "DataUpdateDes");
|
|
MyXml.SetAttrValue("Value", txtDbUpdateDes.Text);
|
|
ryCommon.clsStorage tStor = new ryCommon.clsStorage();
|
|
tStor.AddNode2("id", "KillProcList");
|
|
tStor.SetAttrValue("Value", txtKillProcList.Text);
|
|
tStor.AddNode2("id", "MainProcName");
|
|
tStor.SetAttrValue("Value", txtMainProcName.Text);
|
|
MyXml.AddNode2("id", "SettingXML");
|
|
MyXml.SetAttrValue("Value", tStor.GetXMLText());
|
|
MyXml.SaveToFile(xmlPath);
|
|
MessageBox.Show("保存信息成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
|
|
private void frmUpdateFile_Resize(object sender, EventArgs e)
|
|
{
|
|
tabControl1.Refresh();
|
|
}
|
|
private void LoadOem()
|
|
{
|
|
if (System.IO.File.Exists(Application.StartupPath + "\\otmy.dat"))
|
|
{
|
|
string fileContent = System.IO.File.ReadAllText(Application.StartupPath + "\\otmy.dat");
|
|
fileContent = ryCommon.clsAES.Decode(fileContent, "otmy1234567");
|
|
if (fileContent.IndexOf("otmy") == 0)//说明是正确的oem文件
|
|
{
|
|
ryCommon.clsStorage xStor = new ryCommon.clsStorage(fileContent.Substring(4));
|
|
if (xStor.SelectNode("id", "Info") == 1)
|
|
{
|
|
txtVerName.Text = xStor.GetAttrValue("verName", "");
|
|
txtStatus.Text = xStor.GetAttrValue("StatusOem", "欢迎访问睿元网络官方网站");
|
|
txtStatusUrl.Text = xStor.GetAttrValue("StatusOemUrl", "http://www.itrycn.com");
|
|
txtStatusToolTip.Text = xStor.GetAttrValue("StatusOemToolTip", "");
|
|
txtAdsInfo.Text = xStor.GetAttrValue("AdsInfo", "");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
private void button3_Click(object sender, EventArgs e)
|
|
{
|
|
ryCommon.clsStorage tStor = new ryCommon.clsStorage();
|
|
tStor.AddNode2("id", "Info");
|
|
tStor.SetAttrValue("verName", txtVerName.Text);
|
|
tStor.SetAttrValue("StatusOem", txtStatus.Text);
|
|
tStor.SetAttrValue("StatusOemUrl", txtStatusUrl.Text);
|
|
tStor.SetAttrValue("StatusOemToolTip", txtStatusToolTip.Text);
|
|
tStor.SetAttrValue("AdsInfo", txtAdsInfo.Text);
|
|
System.IO.File.WriteAllText(Application.StartupPath + "\\otmy.dat", ryCommon.clsAES.Encode("otmy" + tStor.GetXMLText(), "otmy1234567"));
|
|
MessageBox.Show("保存信息成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
|
|
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
xmlPath = Application.StartupPath + "\\" + comboBox1.Text;;
|
|
LoadDb(xmlPath);
|
|
}
|
|
}
|
|
}
|