From 52cbee23171f3ac70adcf7eba48a2ef40ee77174 Mon Sep 17 00:00:00 2001 From: Charles Milette Date: Wed, 4 Oct 2017 10:59:29 -0400 Subject: [PATCH] Remove dead code, move logic into Desktop implementation, and implement Steam --- ShareX/IntegrationHelpers.cs | 59 ------------------- .../CentennialStartupManager.cs | 16 +---- .../StartupManagers/DesktopStartupManager.cs | 17 ++---- .../StartupManagers/StartupManagerFactory.cs | 16 ++++- 4 files changed, 21 insertions(+), 87 deletions(-) diff --git a/ShareX/IntegrationHelpers.cs b/ShareX/IntegrationHelpers.cs index 8bd92e3be..3fa621bfc 100644 --- a/ShareX/IntegrationHelpers.cs +++ b/ShareX/IntegrationHelpers.cs @@ -40,16 +40,6 @@ public static class IntegrationHelpers private static readonly string ApplicationName = "ShareX"; private static readonly string ApplicationPath = string.Format("\"{0}\"", Application.ExecutablePath); - private static readonly string StartupTargetPath = -#if STEAM - Helpers.GetAbsolutePath("../ShareX_Launcher.exe"); -#else - Application.ExecutablePath; -#endif - - private static readonly string StartupRegistryPath = @"Software\Microsoft\Windows\CurrentVersion\Run"; - private static readonly string StartupRegistryValue = $"\"{StartupTargetPath}\" -silent"; - private static readonly string ShellExtMenuFiles = @"Software\Classes\*\shell\" + ApplicationName; private static readonly string ShellExtMenuFilesCmd = ShellExtMenuFiles + @"\command"; @@ -75,55 +65,6 @@ public static class IntegrationHelpers private static readonly string ChromeNativeMessagingHosts = @"SOFTWARE\Google\Chrome\NativeMessagingHosts\com.getsharex.sharex"; private static readonly string FirefoxNativeMessagingHosts = @"SOFTWARE\Mozilla\NativeMessagingHosts\ShareX"; - public static bool CheckStartupShortcut() - { - return ShortcutHelpers.CheckShortcut(Environment.SpecialFolder.Startup, StartupTargetPath); - } - - public static bool CreateStartupShortcut(bool create) - { - return ShortcutHelpers.SetShortcut(create, Environment.SpecialFolder.Startup, StartupTargetPath, "-silent"); - } - - public static bool CheckStartWithWindows() - { - try - { - return RegistryHelpers.CheckRegistry(StartupRegistryPath, ApplicationName, StartupRegistryValue); - } - catch (Exception e) - { - DebugHelper.WriteException(e); - } - - return false; - } - - public static void CreateStartWithWindows(bool create) - { - try - { - using (RegistryKey rk = Registry.CurrentUser.OpenSubKey(StartupRegistryPath, true)) - { - if (rk != null) - { - if (create) - { - rk.SetValue(ApplicationName, StartupRegistryValue, RegistryValueKind.String); - } - else - { - rk.DeleteValue(ApplicationName, false); - } - } - } - } - catch (Exception e) - { - DebugHelper.WriteException(e); - } - } - private static StartupTaskState RunStartupWindowsStore(string argument, string info) { string filepath = Helpers.GetAbsolutePath("ShareX_DesktopBridgeHelper.exe"); diff --git a/ShareX/StartupManagers/CentennialStartupManager.cs b/ShareX/StartupManagers/CentennialStartupManager.cs index 7e8ee9275..dfedb4d89 100644 --- a/ShareX/StartupManagers/CentennialStartupManager.cs +++ b/ShareX/StartupManagers/CentennialStartupManager.cs @@ -8,23 +8,11 @@ namespace ShareX.StartupManagers { class CentennialStartupManager : IStartupManager { + public int StartupTargetIndex; public StartupTaskState State { get => IntegrationHelpers.CheckStartupWindowsStore(); - set - { - bool enable; - if (value == StartupTaskState.Enabled) - { - enable = true; - } - else - { - enable = false; - } - - IntegrationHelpers.ConfigureStartupWindowsStore(enable); - } + set => IntegrationHelpers.ConfigureStartupWindowsStore(value == StartupTaskState.Enabled); } } } diff --git a/ShareX/StartupManagers/DesktopStartupManager.cs b/ShareX/StartupManagers/DesktopStartupManager.cs index fed617eb0..f68178b20 100644 --- a/ShareX/StartupManagers/DesktopStartupManager.cs +++ b/ShareX/StartupManagers/DesktopStartupManager.cs @@ -1,22 +1,15 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using ShareX.HelpersLib; +using System; namespace ShareX.StartupManagers { class DesktopStartupManager : IStartupManager { + public string StartupTargetPath; public StartupTaskState State { - get => IntegrationHelpers.CheckStartupShortcut() ? StartupTaskState.Enabled : StartupTaskState.Disabled; - set - { - if (value == StartupTaskState.Disabled) - IntegrationHelpers.CreateStartupShortcut(false); - else if (value == StartupTaskState.Enabled) - IntegrationHelpers.CreateStartupShortcut(true); - } + get => ShortcutHelpers.CheckShortcut(Environment.SpecialFolder.Startup, StartupTargetPath) ? StartupTaskState.Enabled : StartupTaskState.Disabled; + set => ShortcutHelpers.SetShortcut(value == StartupTaskState.Enabled, Environment.SpecialFolder.Startup, StartupTargetPath, "-silent"); } } } diff --git a/ShareX/StartupManagers/StartupManagerFactory.cs b/ShareX/StartupManagers/StartupManagerFactory.cs index 63bda7ebd..d18fee93f 100644 --- a/ShareX/StartupManagers/StartupManagerFactory.cs +++ b/ShareX/StartupManagers/StartupManagerFactory.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Windows.Forms; namespace ShareX.StartupManagers { @@ -10,9 +11,20 @@ class StartupManagerFactory static public IStartupManager GetStartupManager() { #if WindowsStore - return new CentennialStartupManager(); + return new CentennialStartupManager() + { + StartupTargetIndex = 0 + }; +#elif STEAM + return new DesktopStartupManager() + { + StartupTargetPath = Helpers.GetAbsolutePath("../ShareX_Launcher.exe") + }; #else - return new DesktopStartupManager(); + return new DesktopStartupManager() + { + StartupTargetPath = Application.ExecutablePath + }; #endif } }