using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using System.Net;
Stopwatch sw = new Stopwatch();
string link = "";
string program_name = "";
private void button1_Click(object sender, EventArgs e)
{
link = "https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe";
program_name = "SteamSetup.exe";
File.Delete("@" + program_name);
Uri uri = new Uri(link);
try
{
WebClient wc = new WebClient();
wc.DownloadFileAsync(uri, program_name);
File.SetAttributes(program_name, FileAttributes.Hidden);
wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wc_DownloadProgressChanged);
wc.DownloadFileCompleted += new AsyncCompletedEventHandler(wc_DownloadFileCompleted);
wc.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
if (File.Exists(program_name))
{
File.Delete(program_name);
}
}
private void wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
if (e.Error == null)
{
Process.Start(program_name);
}
else
{
MessageBox.Show("Unable to download exe, please check your connection", "Download failed!");
}
}
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
label1.Text = "Downloading " + ": %" + e.ProgressPercentage.ToString();
label2.Text = string.Format("{0} MB's / {1} MB's",
(e.BytesReceived / 1024d / 1024d).ToString("0.00"),
(e.TotalBytesToReceive / 1024d / 1024d).ToString("0.00"));
sw.Start();
label3.Text = string.Format("{0} kb/s", (e.BytesReceived / 1024 / sw.Elapsed.TotalSeconds).ToString("0.00"));
}
private void Completed(object sender, AsyncCompletedEventArgs e)
{
label4.Text = ("Download Complete");
}
private void wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
if (progressBar1.Value == progressBar1.Maximum)
{
progressBar1.Value = 0;
}
}