310 lines
14 KiB
C#
310 lines
14 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.Reflection;
|
|
using System.Windows.Forms;
|
|
using IWshRuntimeLibrary;
|
|
|
|
internal class frmDownloadUpdate : Form
|
|
{
|
|
public ProgressBar progressBar1;
|
|
private IContainer icontainer_0;
|
|
private System.Windows.Forms.Timer LoopTimer = new System.Windows.Forms.Timer();
|
|
private Class15 Class15_0;
|
|
private FrmMain FrmMain_0;
|
|
string String_00 = "";
|
|
private Label label1;
|
|
private PictureBox pictureBox3;
|
|
private PictureBox pictureBox2;
|
|
private PictureBox pictureBox4;
|
|
|
|
bool DownloadingFromGithub = false;
|
|
|
|
public frmDownloadUpdate(ref FrmMain FrmMain_1, ref Class15 Class15_1)
|
|
{
|
|
this.InitializeComponent();
|
|
|
|
FrmMain_0 = FrmMain_1;
|
|
Class15_0 = Class15_1;
|
|
|
|
LoopTimer.Interval = 100;
|
|
LoopTimer.Tick += DoThisAllTheTime;
|
|
LoopTimer.Start();
|
|
}
|
|
|
|
private string DLStringFromURL(WebClient webpage, string ThisURL)
|
|
{
|
|
string ThisStr = "";
|
|
try
|
|
{
|
|
ThisStr = webpage.DownloadString(ThisURL);
|
|
}
|
|
catch { }
|
|
return ThisStr;
|
|
}
|
|
|
|
private void GetUpdate()
|
|
{
|
|
bool BMTuneUpdated = true;
|
|
|
|
double LastVersion = 0;
|
|
double CurrentVersion = double.Parse(this.Class15_0.CurrentBMTuneVersion.Substring(1).Replace(".", ""));
|
|
if (CurrentVersion > 1000) CurrentVersion = CurrentVersion / 10;
|
|
|
|
//############################################################################
|
|
//Getting Normal Version
|
|
try
|
|
{
|
|
using (var webpage = new WebClient())
|
|
{
|
|
webpage.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0; WOW64) Gecko/20100101 Firefox/25.0 AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2");
|
|
|
|
if (String_00 == "") String_00 = DLStringFromURL(webpage, "https://raw.githubusercontent.com/MarcDevs/bmbuild/master/Version.txt");
|
|
if (String_00 != "") DownloadingFromGithub = true;
|
|
if (String_00 == "") String_00 = DLStringFromURL(webpage, "http://www.bmtune.com/build/Version.txt");
|
|
|
|
webpage.Dispose();
|
|
}
|
|
|
|
LastVersion = double.Parse(String_00.Substring(1).Replace(".", ""));
|
|
if (LastVersion > 1000) LastVersion = LastVersion / 10;
|
|
}
|
|
catch
|
|
{
|
|
this.DialogResult = DialogResult.Cancel;
|
|
this.Close();
|
|
}
|
|
|
|
if (CurrentVersion < LastVersion) BMTuneUpdated = false;
|
|
if (!BMTuneUpdated) label1.Text = "UPDATING to " + String_00;
|
|
this.Refresh();
|
|
}
|
|
|
|
/*private class WebClient : System.Net.WebClient
|
|
{
|
|
public int Timeout { get; set; }
|
|
|
|
protected override WebRequest GetWebRequest(Uri uri)
|
|
{
|
|
if (Timeout < 300) Timeout = 6000;
|
|
|
|
WebRequest lWebRequest = base.GetWebRequest(uri);
|
|
lWebRequest.Timeout = Timeout;
|
|
((HttpWebRequest)lWebRequest).ReadWriteTimeout = Timeout;
|
|
return lWebRequest;
|
|
}
|
|
}*/
|
|
|
|
private void UpdateFiles()
|
|
{
|
|
try
|
|
{
|
|
string DLink = "http://www.bmtune.com/build/BMTune.zip";
|
|
if (DownloadingFromGithub) DLink = "https://github.com/MarcDevs/bmbuild/raw/master/BMTune.exe";
|
|
|
|
if (System.IO.File.Exists(Application.StartupPath + @"\BMTune.zip")) System.IO.File.Delete(Application.StartupPath + @"\BMTune.zip");
|
|
|
|
//#############################################################
|
|
//#############################################################
|
|
//#############################################################
|
|
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
|
|
WebClient webClient = new WebClient();
|
|
webClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)");
|
|
using (Stream webStream = webClient.OpenRead(DLink))
|
|
using (FileStream fileStream = new FileStream(Application.StartupPath + @"\BMTuneUpdate.exe", FileMode.Create))
|
|
{
|
|
var buffer = new byte[32768];
|
|
int bytesRead;
|
|
Int64 bytesReadComplete = 0; // Use Int64 for files larger than 2 gb
|
|
Int64 bytesTotal = Convert.ToInt64(webClient.ResponseHeaders["Content-Length"]);
|
|
|
|
while ((bytesRead = webStream.Read(buffer, 0, buffer.Length)) > 0)
|
|
{
|
|
bytesReadComplete += bytesRead;
|
|
fileStream.Write(buffer, 0, bytesRead);
|
|
|
|
this.progressBar1.Value = (int)((bytesReadComplete * 100.0) / bytesTotal);
|
|
}
|
|
}
|
|
//#############################################################
|
|
/*WebClient webClient = new WebClient();
|
|
webClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)");
|
|
webClient.DownloadProgressChanged += delegate (object sender, DownloadProgressChangedEventArgs e) { this.progressBar1.Value = e.ProgressPercentage; };
|
|
//webClient.Timeout = 6000;
|
|
|
|
//Download the File
|
|
if (!DownloadingFromGithub)
|
|
{
|
|
webClient.DownloadFileAsync(new Uri(DLink), Application.StartupPath + @"\BMTune.zip");
|
|
}
|
|
else
|
|
{
|
|
webClient.DownloadFileAsync(new Uri(DLink), Application.StartupPath + @"\BMTuneUpdate.exe");
|
|
}
|
|
while (webClient.IsBusy) { Application.DoEvents(); }*/
|
|
//#############################################################
|
|
//#############################################################
|
|
//#############################################################
|
|
|
|
|
|
//Unzip
|
|
if (!DownloadingFromGithub)
|
|
{
|
|
if (System.IO.File.Exists(Application.StartupPath + @"\BMTuneUpdate" + ".exe")) System.IO.File.Delete(Application.StartupPath + @"\BMTuneUpdate" + ".exe");
|
|
this.FrmMain_0.Class34_Zip_0.UnZipFileFromThisZIP("BMTuneUpdate" + ".exe", Application.StartupPath + @"\BMTune.zip");
|
|
if (System.IO.File.Exists(Application.StartupPath + @"\BMTune.zip")) System.IO.File.Delete(Application.StartupPath + @"\BMTune.zip");
|
|
}
|
|
|
|
//Launch BMTuneUpdate.exe
|
|
if (System.IO.File.Exists(Application.StartupPath + @"\BMTuneUpdate" + ".exe"))
|
|
{
|
|
Process.Start(Application.StartupPath + @"\BMTuneUpdate" + ".exe");
|
|
Environment.Exit(0);
|
|
}
|
|
else
|
|
{
|
|
this.DialogResult = DialogResult.Cancel;
|
|
this.Close();
|
|
}
|
|
}
|
|
catch (Exception mess)
|
|
{
|
|
//MessageBox.Show("Cant update BMTune with error:" + mess, "ERROR");
|
|
//Console.WriteLine("Cant update BMTune with error:" + mess);
|
|
|
|
if (System.IO.File.Exists(Application.StartupPath + @"\BMTuneUpdate" + ".exe")) System.IO.File.Delete(Application.StartupPath + @"\BMTuneUpdate" + ".exe");
|
|
if (System.IO.File.Exists(Application.StartupPath + @"\BMTune.zip")) System.IO.File.Delete(Application.StartupPath + @"\BMTune.zip");
|
|
|
|
this.DialogResult = DialogResult.Cancel;
|
|
this.Close();
|
|
}
|
|
}
|
|
|
|
void DoThisAllTheTime(object sender, EventArgs e)
|
|
{
|
|
LoopTimer.Stop();
|
|
GetUpdate();
|
|
UpdateFiles();
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing && (this.icontainer_0 != null))
|
|
{
|
|
this.icontainer_0.Dispose();
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmDownloadUpdate));
|
|
this.progressBar1 = new System.Windows.Forms.ProgressBar();
|
|
this.label1 = new System.Windows.Forms.Label();
|
|
this.pictureBox3 = new System.Windows.Forms.PictureBox();
|
|
this.pictureBox2 = new System.Windows.Forms.PictureBox();
|
|
this.pictureBox4 = new System.Windows.Forms.PictureBox();
|
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
|
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
|
|
this.SuspendLayout();
|
|
//
|
|
// progressBar1
|
|
//
|
|
this.progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
|
this.progressBar1.Location = new System.Drawing.Point(10, 147);
|
|
this.progressBar1.Name = "progressBar1";
|
|
this.progressBar1.Size = new System.Drawing.Size(351, 10);
|
|
this.progressBar1.TabIndex = 29;
|
|
//
|
|
// label1
|
|
//
|
|
this.label1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
|
this.label1.Font = new System.Drawing.Font("Lucida Sans", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
|
this.label1.Location = new System.Drawing.Point(10, 121);
|
|
this.label1.Name = "label1";
|
|
this.label1.Size = new System.Drawing.Size(351, 26);
|
|
this.label1.TabIndex = 30;
|
|
this.label1.Text = "UPDATING !";
|
|
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
|
//
|
|
// pictureBox3
|
|
//
|
|
this.pictureBox3.BackColor = System.Drawing.Color.Transparent;
|
|
this.pictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
|
this.pictureBox3.Image = global::Properties.Resources.BMTune_Logo_150x901;
|
|
this.pictureBox3.Location = new System.Drawing.Point(68, 0);
|
|
this.pictureBox3.Name = "pictureBox3";
|
|
this.pictureBox3.Size = new System.Drawing.Size(234, 119);
|
|
this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
|
this.pictureBox3.TabIndex = 38;
|
|
this.pictureBox3.TabStop = false;
|
|
//
|
|
// pictureBox2
|
|
//
|
|
this.pictureBox2.BackColor = System.Drawing.Color.Transparent;
|
|
this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
|
this.pictureBox2.Image = global::Properties.Resources.Piston_Animation_Small;
|
|
this.pictureBox2.Location = new System.Drawing.Point(0, 0);
|
|
this.pictureBox2.Name = "pictureBox2";
|
|
this.pictureBox2.Size = new System.Drawing.Size(69, 119);
|
|
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
|
this.pictureBox2.TabIndex = 37;
|
|
this.pictureBox2.TabStop = false;
|
|
//
|
|
// pictureBox4
|
|
//
|
|
this.pictureBox4.BackColor = System.Drawing.Color.Transparent;
|
|
this.pictureBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
|
this.pictureBox4.Image = global::Properties.Resources.Piston_Animation_Small;
|
|
this.pictureBox4.Location = new System.Drawing.Point(301, 0);
|
|
this.pictureBox4.Name = "pictureBox4";
|
|
this.pictureBox4.Size = new System.Drawing.Size(69, 119);
|
|
this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
|
this.pictureBox4.TabIndex = 36;
|
|
this.pictureBox4.TabStop = false;
|
|
//
|
|
// frmDownloadUpdate
|
|
//
|
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
|
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
|
this.ClientSize = new System.Drawing.Size(371, 167);
|
|
this.Controls.Add(this.pictureBox3);
|
|
this.Controls.Add(this.pictureBox2);
|
|
this.Controls.Add(this.pictureBox4);
|
|
this.Controls.Add(this.label1);
|
|
this.Controls.Add(this.progressBar1);
|
|
this.Font = new System.Drawing.Font("Lucida Sans", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
|
this.MaximizeBox = false;
|
|
this.MinimizeBox = false;
|
|
this.Name = "frmDownloadUpdate";
|
|
this.Padding = new System.Windows.Forms.Padding(10);
|
|
this.ShowInTaskbar = false;
|
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
|
this.Text = "Updating";
|
|
this.TopMost = true;
|
|
this.Load += new System.EventHandler(this.frmAboutBox_Load);
|
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
|
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
|
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
|
|
this.ResumeLayout(false);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void frmAboutBox_Load(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|