File size: 4,504 Bytes
e26fba6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Net;
using System.IO;
using System.Reflection;
using System.Diagnostics;
namespace MovieTube.Downloader
{
public partial class MainForm : Form
{
private Thread thread;
private static string Folder = @"_MovieTube\MovieTube.Installer.exe";
private static string SetupPath = @"_MovieTube\MovieTube.Setup.msi";
private static string VersionUrl = "http://www.filmkhoj.com/api/appversion";
private static string DownloadUrl = "http://www.filmkhoj.com/Home/Download2";
private WebClient client = new WebClient();
private int progress;
public MainForm()
{
InitializeComponent();
}
private void timer_Tick(object sender, EventArgs e)
{
this.timer.Stop();
this.thread = new Thread(DownloadAndLaunch);
thread.Start();
}
private string FilePath
{
get
{
return Path.Combine(Application.StartupPath, Folder);
}
}
private string DirectoryPath
{
get
{
return Path.GetDirectoryName(FilePath);
}
}
private void DownloadAndLaunch()
{
try
{
var path = FilePath;
//string v;
//Version verion = null;
//Version dVersion = null;
//if (GetResource(VersionUrl, out v))
// verion = new Version(v);
//if (File.Exists(path))
//{
// try
// {
// dVersion = AssemblyName.GetAssemblyName(Path.Combine(Application.StartupPath,)).Version;
// }
// catch { }
//}
//if (dVersion == null || dVersion < verion)
{
var dir = DirectoryPath;
if (Directory.Exists(dir))
Directory.Delete(dir, true);
Directory.CreateDirectory(dir);
Download(DownloadUrl, path);
}
//else
//{
// this.progressBar1.Value = 100;
// LaunchInstaller();
//}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Downloader");
}
}
private void Download(string url, string filePath)
{
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileAsync(new Uri(url), filePath);
}
void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
if (File.Exists(FilePath))
{
LaunchInstaller();
}
else
{
MessageBox.Show(e.Error.Message, "Downloader");
}
}
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
this.progress = e.ProgressPercentage;
}
private bool GetResource(string url, out string result)
{
result = null;
try
{
using (var client = new WebClient())
{
result = client.DownloadString(url);
}
}
catch { return false; }
return true;
}
private void timerProgress_Tick(object sender, EventArgs e)
{
this.progressBar1.Value = this.progress;
}
private void LaunchInstaller()
{
var pi = new ProcessStartInfo()
{
WorkingDirectory = DirectoryPath,
FileName = FilePath
};
Process.Start(pi);
Application.Exit();
}
}
}
|