using System.ComponentModel; namespace Bloxstrap { static class Utilities { public static void ShellExecute(string website) { try { Process.Start(new ProcessStartInfo { FileName = website, UseShellExecute = true }); } catch (Win32Exception ex) { // lmfao if (ex.NativeErrorCode != (int)ErrorCode.CO_E_APPNOTFOUND) throw; Process.Start(new ProcessStartInfo { FileName = "rundll32.exe", Arguments = $"shell32,OpenAs_RunDLL {website}" }); } } /// /// /// /// /// /// /// Result of System.Version.CompareTo
/// -1: version1 < version2
/// 0: version1 == version2
/// 1: version1 > version2 ///
public static int CompareVersions(string versionStr1, string versionStr2) { var version1 = new Version(versionStr1.Replace("v", "")); var version2 = new Version(versionStr2.Replace("v", "")); return version1.CompareTo(version2); } public static string GetRobloxVersion(bool studio) { string versionGuid = studio ? App.State.Prop.StudioVersionGuid : App.State.Prop.PlayerVersionGuid; string fileName = studio ? "RobloxStudioBeta.exe" : "RobloxPlayerBeta.exe"; string playerLocation = Path.Combine(Paths.Versions, versionGuid, fileName); if (!File.Exists(playerLocation)) return ""; FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(playerLocation); if (versionInfo.ProductVersion is null) return ""; return versionInfo.ProductVersion.Replace(", ", "."); } } }