319 lines
11 KiB
C#
319 lines
11 KiB
C#
using Data;
|
|
using Microsoft.Win32;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.Net.Mail;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Reflection;
|
|
using System.Security.Cryptography;
|
|
using System.Security.Principal;
|
|
using System.Management;
|
|
using System.Windows.Forms;
|
|
|
|
internal class Class15
|
|
{
|
|
private FrmMain frmMain_0;
|
|
private BMTuneVersions BMTuneVersions_0 = BMTuneVersions.Free;
|
|
internal string string_CurrentID;
|
|
private string DPath;
|
|
private Class15 Class15_0;
|
|
internal string BMIDDD;
|
|
|
|
//UPDATE SETTING
|
|
internal string CurrentBMTuneVersion;
|
|
|
|
public Class15(ref FrmMain FrmMain_1)
|
|
{
|
|
Class15_0 = this;
|
|
frmMain_0 = FrmMain_1;
|
|
|
|
string TeasteStr4 = "6E3-FEBF-BAF3-33C4-FBFF";
|
|
string TeasteStr6 = "V1.97";
|
|
|
|
DPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\";
|
|
BMIDDD = TeasteStr4;
|
|
CurrentBMTuneVersion = TeasteStr6;
|
|
|
|
this.AdminRelauncher();
|
|
this.BMTuneVersions_0 = BMTuneVersions.Tuner;
|
|
if (!Directory.Exists(DPath)) Directory.CreateDirectory(DPath);
|
|
this.method_getversion();
|
|
this.GetUserID();
|
|
|
|
//################
|
|
//Check for updates
|
|
if (File.Exists(Application.StartupPath + @"\README.md")) File.Delete(Application.StartupPath + @"\README.md");
|
|
if (File.Exists(Application.StartupPath + @"\BMTuneUpdate" + ".exe")) File.Delete(Application.StartupPath + @"\BMTuneUpdate" + ".exe");
|
|
this.CheckForUpdate(false);
|
|
//################
|
|
}
|
|
|
|
private void AdminRelauncher()
|
|
{
|
|
if (!IsRunAsAdmin())
|
|
{
|
|
ProcessStartInfo proc = new ProcessStartInfo();
|
|
proc.UseShellExecute = true;
|
|
proc.WorkingDirectory = Environment.CurrentDirectory;
|
|
try
|
|
{
|
|
proc.FileName = Assembly.GetEntryAssembly().CodeBase;
|
|
}
|
|
catch
|
|
{
|
|
proc.FileName = Application.ExecutablePath;
|
|
}
|
|
|
|
proc.Verb = "runas";
|
|
|
|
try
|
|
{
|
|
Process.Start(proc);
|
|
}
|
|
catch { }
|
|
Environment.Exit(0);
|
|
}
|
|
}
|
|
|
|
private bool IsRunAsAdmin()
|
|
{
|
|
WindowsIdentity id = WindowsIdentity.GetCurrent();
|
|
WindowsPrincipal principal = new WindowsPrincipal(id);
|
|
|
|
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
|
}
|
|
|
|
private void GetUserID()
|
|
{
|
|
this.string_CurrentID = "";
|
|
string RSTRING = GSEEET(Path.GetPathRoot(Environment.SystemDirectory).Substring(0, 1));
|
|
for (int i = 0; i < RSTRING.Length; i++)
|
|
{
|
|
this.string_CurrentID += RSTRING[i];
|
|
if (i == 2 || i == 6 || i == 10 || i == 14) this.string_CurrentID += "-";
|
|
}
|
|
}
|
|
private string GSEEET(string F323F)
|
|
{
|
|
if (F323F.EndsWith(":\\")) F323F = F323F.Substring(0, F323F.Length - 2);
|
|
string SBSEEB = G233G3(F323F);
|
|
string G23G = HH2333S();
|
|
return G23G.Substring(13) + G23G.Substring(1, 4) + SBSEEB + G23G.Substring(4, 4);
|
|
}
|
|
|
|
private string G233G3(string DSEGESEG)
|
|
{
|
|
ManagementObject SDFV = new ManagementObject(@"win32_logicaldisk.deviceid=""" + DSEGESEG + @":""");
|
|
SDFV.Get();
|
|
string VSVESV = SDFV["VolumeSerialNumber"].ToString();
|
|
SDFV.Dispose();
|
|
return VSVESV;
|
|
}
|
|
|
|
private string HH2333S()
|
|
{
|
|
string VESEVE = "";
|
|
ManagementClass BANR = new ManagementClass("win32_processor");
|
|
ManagementObjectCollection NRDDR = BANR.GetInstances();
|
|
foreach (ManagementObject RDMRRD in NRDDR)
|
|
{
|
|
if (VESEVE == "")
|
|
{
|
|
VESEVE = RDMRRD.Properties["processorID"].Value.ToString();
|
|
break;
|
|
}
|
|
}
|
|
return VESEVE;
|
|
}
|
|
|
|
//####
|
|
private void method_getversion()
|
|
{
|
|
if (File.Exists(Application.StartupPath + @"\VersionV2.txt")) File.Delete(Application.StartupPath + @"\VersionV2.txt");
|
|
|
|
if (File.Exists(Application.StartupPath + @"\Version.txt"))
|
|
{
|
|
File.Create(DPath + "Version.txt").Dispose();
|
|
File.WriteAllBytes(DPath + "Version.txt", File.ReadAllBytes(Application.StartupPath + @"\Version.txt"));
|
|
try
|
|
{
|
|
File.Delete(Application.StartupPath + @"\Version.txt");
|
|
}
|
|
catch
|
|
{
|
|
LogTtheee("Unable to remove Version File at location:" + Environment.NewLine + "" + Application.StartupPath + @"\Version.txt");
|
|
}
|
|
}
|
|
|
|
if (File.Exists(Application.StartupPath + @"\VersionBETA.txt")) File.Delete(Application.StartupPath + @"\VersionBETA.txt");
|
|
|
|
if (File.Exists(DPath + "Version.txt")) CurrentBMTuneVersion = File.ReadAllText(DPath + "Version.txt");
|
|
else
|
|
{
|
|
File.Create(DPath + "Version.txt").Dispose();
|
|
File.WriteAllText(DPath + "Version.txt", CurrentBMTuneVersion);
|
|
}
|
|
}
|
|
|
|
private void LogTtheee(string string_8)
|
|
{
|
|
this.frmMain_0.LogThis("Loading - " + string_8);
|
|
}
|
|
|
|
private string DLStringFromURL(string ThisURL)
|
|
{
|
|
string String_00 = "";
|
|
|
|
//###########################################################
|
|
//Using HttpWebRequest
|
|
try
|
|
{
|
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ThisURL);
|
|
request.Timeout = 6000;
|
|
request.ReadWriteTimeout = 6000;
|
|
WebResponse wresp = (HttpWebResponse)request.GetResponse();
|
|
Stream memoryStream = wresp.GetResponseStream();
|
|
StreamReader streamReader = new StreamReader(memoryStream);
|
|
String_00 = streamReader.ReadToEnd();
|
|
}
|
|
catch
|
|
{
|
|
|
|
}
|
|
|
|
//###########################################################
|
|
//###########################################################
|
|
//###########################################################
|
|
//Using WebClient
|
|
/*using (var webpage = new WebClient())
|
|
{
|
|
//webpage.Headers[HttpRequestHeader.UserAgent] = "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";
|
|
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");
|
|
//webpage.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
|
|
try
|
|
{
|
|
String_00 = webpage.DownloadString(ThisURL);
|
|
|
|
}
|
|
catch (Exception mess)
|
|
{
|
|
Console.WriteLine("Cant get Text from URL with error:" + mess);
|
|
}
|
|
|
|
webpage.Dispose();
|
|
}*/
|
|
|
|
|
|
//if (String_00 != "") Console.WriteLine("Managed to get internet version from:" + Environment.NewLine + ThisURL);
|
|
return String_00;
|
|
}
|
|
|
|
public void CheckForUpdate(bool ShowWarning)
|
|
{
|
|
bool BMTuneUpdated = true;
|
|
//XXXX();
|
|
try
|
|
{
|
|
string String_00 = "";
|
|
//if (String_00 == "") String_00 = this.frmMain_0.class31_0.GetFTPBMTuneVersion("Version.txt");
|
|
if (String_00 == "") String_00 = DLStringFromURL("https://raw.githubusercontent.com/MarcDevs/bmbuild/master/Version.txt");
|
|
if (String_00 == "") String_00 = DLStringFromURL("http://www.bmtune.com/build/Version.txt");
|
|
|
|
if (String_00 != "")
|
|
{
|
|
double LastVersion = double.Parse(String_00.Substring(1).Replace(".", ""));
|
|
if (LastVersion > 1000) LastVersion = LastVersion / 10;
|
|
|
|
double CurrentVersion = double.Parse(this.CurrentBMTuneVersion.Substring(1).Replace(".", ""));
|
|
if (CurrentVersion > 1000) CurrentVersion = CurrentVersion / 10;
|
|
|
|
if (CurrentVersion < LastVersion) BMTuneUpdated = false;
|
|
|
|
if (!BMTuneUpdated)
|
|
{
|
|
DialogResult result = DialogResult.Yes;
|
|
result = MessageBox.Show(Form.ActiveForm, "New update available!" + Environment.NewLine + "Version: " + String_00 + Environment.NewLine + "Do you want to update?", "BMTune", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
|
|
if (result == DialogResult.Yes) this.UpdateBMTune();
|
|
}
|
|
//InternetConnected = true;
|
|
}
|
|
}
|
|
catch {
|
|
if (ShowWarning) ShowManualUpdate();
|
|
}
|
|
}
|
|
|
|
public void ShowManualUpdate()
|
|
{
|
|
DialogResult result = MessageBox.Show(Form.ActiveForm, "Can't update BMTune" + Environment.NewLine + "Do you want to download BMTune manually?", "BMTune", MessageBoxButtons.YesNo, MessageBoxIcon.Hand);
|
|
if (result == DialogResult.Yes) Process.Start("http://www.bmtune.com/");
|
|
}
|
|
|
|
private void UpdateBMTune()
|
|
{
|
|
frmDownloadUpdate frmDownloadUpdate_0 = new frmDownloadUpdate(ref this.frmMain_0, ref Class15_0);
|
|
DialogResult result = frmDownloadUpdate_0.ShowDialog();
|
|
|
|
if (result == DialogResult.Cancel) ShowManualUpdate();
|
|
}
|
|
|
|
internal BMTuneVersions method_22()
|
|
{
|
|
return this.BMTuneVersions_0;
|
|
}
|
|
|
|
internal bool method_5(Enum4 enum4_0)
|
|
{
|
|
return true;
|
|
|
|
/*switch (enum4_0)
|
|
{
|
|
case Enum4.const_0:
|
|
return (this.BMTuneVersions_0 == BMTuneVersions.datalogger);
|
|
|
|
case Enum4.const_1:
|
|
return (this.BMTuneVersions_0 == BMTuneVersions.Free);
|
|
|
|
case Enum4.const_2:
|
|
return (this.BMTuneVersions_0 == BMTuneVersions.Pro_Demon);
|
|
|
|
case Enum4.const_3:
|
|
return (this.BMTuneVersions_0 == BMTuneVersions.Tuner);
|
|
|
|
case Enum4.const_11:
|
|
return (this.BMTuneVersions_0 == BMTuneVersions.Dev || this.BMTuneVersions_0 == BMTuneVersions.Tuner);
|
|
|
|
case Enum4.const_12:
|
|
return (this.BMTuneVersions_0 == BMTuneVersions.Dev);
|
|
|
|
}
|
|
return false;*/
|
|
}
|
|
|
|
private string That(string Hex)
|
|
{
|
|
string Left = Hex;
|
|
string Returning = "";
|
|
while (Left != "")
|
|
{
|
|
try
|
|
{
|
|
int This = Int32.Parse(Left.Substring(0, 2), System.Globalization.NumberStyles.AllowHexSpecifier) - 40;
|
|
if (This < 0) This = 256 + This;
|
|
Returning += Convert.ToChar(This).ToString();
|
|
Left = Left.Substring(2);
|
|
}
|
|
catch { Left = ""; }
|
|
}
|
|
|
|
return Returning;
|
|
}
|
|
}
|
|
|