From 5f2e2abdc61acdda63e517019f2f4251efa47809 Mon Sep 17 00:00:00 2001 From: Thomas G <62822072+Thomasluigi07@users.noreply.github.com> Date: Fri, 5 Aug 2022 10:31:34 +1000 Subject: [PATCH] 2.7 --- Form2.Designer.cs | 24 +++++++++++++----------- Form2.cs | 26 +++++++++++++++++++------- Program.cs | 9 ++++++++- Resources/Thumbs.db | Bin 0 -> 18944 bytes URI_Maker.cs | 43 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 83 insertions(+), 19 deletions(-) create mode 100644 Resources/Thumbs.db create mode 100644 URI_Maker.cs diff --git a/Form2.Designer.cs b/Form2.Designer.cs index dd97929..f9d662d 100644 --- a/Form2.Designer.cs +++ b/Form2.Designer.cs @@ -75,47 +75,49 @@ this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; this.pictureBox2.Image = global::ARCHBLOXBootstrapper.Properties.Resources.archblox; this.pictureBox2.InitialImage = global::ARCHBLOXBootstrapper.Properties.Resources.archblox; - this.pictureBox2.Location = new System.Drawing.Point(3, 6); + this.pictureBox2.Location = new System.Drawing.Point(18, 17); this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(46, 46); - this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox2.Size = new System.Drawing.Size(35, 42); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox2.TabIndex = 0; this.pictureBox2.TabStop = false; // // label2 // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(55, 6); + this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.label2.ImageAlign = System.Drawing.ContentAlignment.BottomLeft; + this.label2.Location = new System.Drawing.Point(58, 18); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(132, 14); + this.label2.Size = new System.Drawing.Size(237, 21); this.label2.TabIndex = 1; this.label2.Text = "Checking for updates..."; + this.label2.TextAlign = System.Drawing.ContentAlignment.BottomLeft; // // progressBar2 // - this.progressBar2.Location = new System.Drawing.Point(55, 29); + this.progressBar2.Location = new System.Drawing.Point(58, 51); this.progressBar2.MarqueeAnimationSpeed = 10; this.progressBar2.Name = "progressBar2"; - this.progressBar2.Size = new System.Drawing.Size(217, 23); + this.progressBar2.Size = new System.Drawing.Size(287, 26); this.progressBar2.Style = System.Windows.Forms.ProgressBarStyle.Marquee; this.progressBar2.TabIndex = 2; // // ARCHBLOX // - this.ClientSize = new System.Drawing.Size(286, 59); + this.ClientSize = new System.Drawing.Size(352, 136); this.Controls.Add(this.progressBar2); this.Controls.Add(this.label2); this.Controls.Add(this.pictureBox2); + this.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "ARCHBLOX"; - this.Text = "ARCHBLOX Installer"; + this.Text = "ARCHBLOX Studio"; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); this.ResumeLayout(false); - this.PerformLayout(); } diff --git a/Form2.cs b/Form2.cs index 7a2aa57..f68117e 100644 --- a/Form2.cs +++ b/Form2.cs @@ -14,6 +14,7 @@ namespace ARCHBLOXBootstrapper { // set up variables public bool IsCompleted = false; + public bool exitafterarg = false; public bool DontEvenBother = false; private static WebClient wc = new WebClient(); private static ManualResetEvent handle = new ManualResetEvent(true); @@ -33,14 +34,27 @@ namespace ARCHBLOXBootstrapper public ARCHBLOX() { InitializeComponent(); + // check for an internet connection first + try + { + wc.DownloadData("http://archblox.com/studio/version.txt"); + } + catch + { + MessageBox.Show("An error occoured while starting ARCHBLOX Studio\n\nDetails: HttpOpenRequest failed for GET http://archblox.com/studio/version.txt, Error ID: 6", "ARCHBLOX", MessageBoxButtons.OK, MessageBoxIcon.Error); + Environment.Exit(0); + } // setup paths - byte[] raw = wc.DownloadData("https://archblox.com/studio/version.txt"); + byte[] raw = wc.DownloadData("http://archblox.com/studio/version.txt"); string webData = Encoding.UTF8.GetString(raw); string version_string = webData; string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"Archblx\", @"Studio\", @"Versions\"); string clientPath = Path.Combine(folderPath, version_string + @"\"); - string filePath = Path.Combine(clientPath, Path.GetFileName(@"https://archblox.com/client/" + version_string + ".zip")); + string filePath = Path.Combine(clientPath, Path.GetFileName(@"http://archblox.com/client/" + version_string + ".zip")); string studioPath = Path.Combine(clientPath, "ArchbloxStudio.exe"); + ARCHBLOXProtocol.ARCHBLOXURIProtocol.Register(); + CreateShortcut(); + // TODO: Make studio place launching URI. if (Directory.Exists(clientPath) & System.IO.File.Exists(studioPath)) { // studio exists, create shortcut and launch studio @@ -69,14 +83,12 @@ namespace ARCHBLOXBootstrapper wc.DownloadProgressChanged += Client_DownloadProgressChanged; wc.DownloadFileCompleted += Client_DownloadFileCompleted; progressBar2.Style = ProgressBarStyle.Marquee; - wc.DownloadProgressChanged += Client_DownloadProgressChanged; - wc.DownloadFileCompleted += Client_DownloadFileCompleted; if (DontEvenBother == false) { // install studio label2.Text = "Configuring ARCHBLOX..."; Directory.CreateDirectory(clientPath); - wc.DownloadFileAsync(new Uri(@"https://archblox.com/studio/" + version_string + ".zip"), filePath); + wc.DownloadFileAsync(new Uri(@"http://archblox.com/studio/" + version_string + ".zip"), filePath); progressBar2.Style = ProgressBarStyle.Blocks; handle.WaitOne(); } else @@ -97,12 +109,12 @@ namespace ARCHBLOXBootstrapper { // the download has completed, extract.zip, create shortcut and launch! IsCompleted = true; - byte[] raw = wc.DownloadData("https://archblox.com/studio/version.txt"); + byte[] raw = wc.DownloadData("http://archblox.com/studio/version.txt"); string webData = Encoding.UTF8.GetString(raw); string version_string = webData; string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"Archblx\", @"Studio\", @"Versions\"); string clientPath = Path.Combine(folderPath, version_string + @"\"); - string filePath = Path.Combine(clientPath, Path.GetFileName(@"https://archblox.com/studio/" + version_string + ".zip")); + string filePath = Path.Combine(clientPath, Path.GetFileName(@"http://archblox.com/studio/" + version_string + ".zip")); string studioPath = Path.Combine(clientPath, "ArchbloxStudio.exe"); ZipFile.ExtractToDirectory(filePath, clientPath); System.IO.File.Delete(filePath); diff --git a/Program.cs b/Program.cs index c253f58..4f138b0 100644 --- a/Program.cs +++ b/Program.cs @@ -12,11 +12,18 @@ namespace ARCHBLOXBootstrapper /// The main entry point for the application. /// [STAThread] - static void Main() + static void Main(string[] args) { Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); + if (args.Length > 0) + { + foreach (string s in args) + { + ARCHBLOXProtocol.SharedVariables.Arguments = s; + } + } Application.Run(new ARCHBLOX()); } } diff --git a/Resources/Thumbs.db b/Resources/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..621e91d3e1eea388075ae6d273dd0bfc334171df GIT binary patch literal 18944 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 literal 0 HcmV?d00001 diff --git a/URI_Maker.cs b/URI_Maker.cs new file mode 100644 index 0000000..8fa02b3 --- /dev/null +++ b/URI_Maker.cs @@ -0,0 +1,43 @@ +using System; +using System.Windows.Forms; +using System.Security.Permissions; +using Microsoft.Win32; +using System.Text; +using System.Net; +using System.IO; + +namespace ARCHBLOXProtocol +{ + class SharedVariables + { + public static string Arguments = ""; + }; + internal static class ARCHBLOXURIProtocol + { + private static RegistryKey softwareClasses = Registry.CurrentUser.OpenSubKey("Software").OpenSubKey("Classes", true); + + internal static void Register() + { + // credit to p0s0 for helping me with this + if (softwareClasses.OpenSubKey("archbloxstudio") == null) {} else { softwareClasses.DeleteSubKeyTree("archbloxstudio"); } + RegistryKey key = softwareClasses.CreateSubKey("archbloxstudio", true); + key.SetValue("", "URL: archbloxstudio Protocol"); + key.SetValue("URL Protocol", ""); + + RegistryKey key1 = key.CreateSubKey("DefaultIcon", true); + key1.SetValue("", ARCHBLOXBootstrapper.Extensions.GetExecutablePath()); + + RegistryKey key2 = key.CreateSubKey("shell", true); + RegistryKey key3 = key2.CreateSubKey("open", true); + + RegistryKey key4 = key3.CreateSubKey("command", true); + key4.SetValue("", "\"" + ARCHBLOXBootstrapper.Extensions.GetExecutablePath() + "\" %1"); + + key.Close(); + key1.Close(); + key2.Close(); + key3.Close(); + key4.Close(); + } + } +}