diff --git a/Extensions.cs b/Extensions.cs new file mode 100644 index 0000000..5601604 --- /dev/null +++ b/Extensions.cs @@ -0,0 +1,24 @@ +using System; + +namespace ARCHBLOXBootstrapper +{ + public static class Extensions + { + [System.Runtime.InteropServices.DllImport("kernel32.dll")] + static extern uint GetModuleFileName(IntPtr hModule, System.Text.StringBuilder lpFilename, int nSize); + static readonly int MAX_PATH = 255; + public static string GetExecutablePath() + { + if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows)) + { + var sb = new System.Text.StringBuilder(MAX_PATH); + GetModuleFileName(IntPtr.Zero, sb, MAX_PATH); + return sb.ToString(); + } + else + { + return System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; + } + } + } +} \ No newline at end of file diff --git a/Form2.cs b/Form2.cs index 6fabc0a..12af304 100644 --- a/Form2.cs +++ b/Form2.cs @@ -24,7 +24,7 @@ namespace ARCHBLOXBootstrapper string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\ARCHBLOX Studio.lnk"; IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress); shortcut.Description = "ARCHBLOX Studio"; - shortcut.TargetPath = Path.GetFullPath(Application.ExecutablePath); + shortcut.TargetPath = Extensions.GetExecutablePath(); shortcut.Save(); } @@ -69,7 +69,7 @@ namespace ARCHBLOXBootstrapper { Directory.CreateDirectory(clientPath); wc.DownloadFileAsync(new Uri(@"https://archblox.com/studio/" + version_string + ".zip"), filePath); - progressBar2.Style = ProgressBarStyle.Blocks; + progressBar2.Style = ProgressBarStyle.Blocks; handle.WaitOne(); } }