mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 17:56:51 +13:00
Merge pull request #3641 from sylveon/startup-update
Update startup code
This commit is contained in:
commit
04ebf946a1
9 changed files with 69 additions and 40 deletions
|
@ -26,6 +26,9 @@ You should have received a copy of the GNU General Public License
|
|||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
#if WindowsStore
|
||||
using Windows.ApplicationModel;
|
||||
#endif
|
||||
|
||||
namespace ShareX
|
||||
{
|
||||
|
@ -275,11 +278,22 @@ public enum RegionCaptureType
|
|||
}
|
||||
|
||||
#if !WindowsStore
|
||||
public enum StartupTaskState
|
||||
public enum StartupState
|
||||
{
|
||||
Disabled = 0,
|
||||
DisabledByUser = 1,
|
||||
Enabled = 2
|
||||
Disabled,
|
||||
DisabledByUser,
|
||||
Enabled,
|
||||
DisabledByPolicy,
|
||||
EnabledByPolicy
|
||||
}
|
||||
#else
|
||||
public enum StartupState
|
||||
{
|
||||
Disabled = StartupTaskState.Disabled,
|
||||
DisabledByUser = StartupTaskState.DisabledByUser,
|
||||
Enabled = StartupTaskState.Enabled,
|
||||
DisabledByPolicy = StartupTaskState.DisabledByPolicy,
|
||||
EnabledByPolicy = StartupTaskState.EnabledByPolicy
|
||||
}
|
||||
#endif
|
||||
}
|
|
@ -32,10 +32,6 @@ You should have received a copy of the GNU General Public License
|
|||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#if WindowsStore
|
||||
using Windows.ApplicationModel;
|
||||
#endif
|
||||
|
||||
namespace ShareX
|
||||
{
|
||||
public partial class ApplicationSettingsForm : Form
|
||||
|
@ -264,12 +260,20 @@ private void UpdateStartWithWindows()
|
|||
try
|
||||
{
|
||||
var state = StartupManagerSingletonProvider.CurrentStartupManager.State;
|
||||
cbStartWithWindows.Checked = state == StartupTaskState.Enabled;
|
||||
cbStartWithWindows.Checked = state == StartupState.Enabled || state == StartupState.EnabledByPolicy;
|
||||
|
||||
if (state == StartupTaskState.DisabledByUser)
|
||||
if (state == StartupState.DisabledByUser)
|
||||
{
|
||||
cbStartWithWindows.Text = Resources.ApplicationSettingsForm_cbStartWithWindows_DisabledByUser_Text;
|
||||
}
|
||||
else if (state == StartupState.DisabledByPolicy)
|
||||
{
|
||||
cbStartWithWindows.Text = Resources.ApplicationSettingsForm_cbStartWithWindows_DisabledByPolicy_Text;
|
||||
}
|
||||
else if (state == StartupState.EnabledByPolicy)
|
||||
{
|
||||
cbStartWithWindows.Text = Resources.ApplicationSettingsForm_cbStartWithWindows_EnabledByPolicy_Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
cbStartWithWindows.Enabled = true;
|
||||
|
@ -425,7 +429,7 @@ private void cbStartWithWindows_CheckedChanged(object sender, EventArgs e)
|
|||
{
|
||||
try
|
||||
{
|
||||
StartupManagerSingletonProvider.CurrentStartupManager.State = cbStartWithWindows.Checked ? StartupTaskState.Enabled : StartupTaskState.Disabled;
|
||||
StartupManagerSingletonProvider.CurrentStartupManager.State = cbStartWithWindows.Checked ? StartupState.Enabled : StartupState.Disabled;
|
||||
UpdateStartWithWindows();
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
@ -27,10 +27,6 @@ You should have received a copy of the GNU General Public License
|
|||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#if WindowsStore
|
||||
using Windows.ApplicationModel;
|
||||
#endif
|
||||
|
||||
namespace ShareX
|
||||
{
|
||||
public partial class FirstTimeConfigForm : BlackStyleForm
|
||||
|
@ -43,8 +39,8 @@ public FirstTimeConfigForm()
|
|||
pbLogo.Image = ImageHelpers.ResizeImage(ShareXResources.Logo, 128, 128);
|
||||
var state = StartupManagerSingletonProvider.CurrentStartupManager.State;
|
||||
|
||||
cbRunStartup.Checked = state == StartupTaskState.Enabled;
|
||||
cbRunStartup.Enabled = state != StartupTaskState.DisabledByUser;
|
||||
cbRunStartup.Checked = state == StartupState.Enabled || state == StartupState.EnabledByPolicy;
|
||||
cbRunStartup.Enabled = state != StartupState.DisabledByUser && state != StartupState.DisabledByPolicy && state != StartupState.EnabledByPolicy;
|
||||
|
||||
cbShellContextMenuButton.Checked = IntegrationHelpers.CheckShellContextMenuButton();
|
||||
cbSendToMenu.Checked = IntegrationHelpers.CheckSendToMenuButton();
|
||||
|
@ -67,7 +63,7 @@ private void cbRunStartup_CheckedChanged(object sender, EventArgs e)
|
|||
{
|
||||
if (loaded)
|
||||
{
|
||||
StartupManagerSingletonProvider.CurrentStartupManager.State = cbRunStartup.Checked ? StartupTaskState.Enabled : StartupTaskState.Disabled;
|
||||
StartupManagerSingletonProvider.CurrentStartupManager.State = cbRunStartup.Checked ? StartupState.Enabled : StartupState.Disabled;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -31,10 +31,6 @@ You should have received a copy of the GNU General Public License
|
|||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#if WindowsStore
|
||||
using Windows.ApplicationModel;
|
||||
#endif
|
||||
|
||||
namespace ShareX
|
||||
{
|
||||
public static class IntegrationHelpers
|
||||
|
@ -401,7 +397,7 @@ public static void SteamShowInApp(bool showInApp)
|
|||
|
||||
public static void Uninstall()
|
||||
{
|
||||
StartupManagerSingletonProvider.CurrentStartupManager.State = StartupTaskState.Disabled;
|
||||
StartupManagerSingletonProvider.CurrentStartupManager.State = StartupState.Disabled;
|
||||
CreateShellContextMenuButton(false);
|
||||
CreateEditShellContextMenuButton(false);
|
||||
CreateCustomUploaderExtension(false);
|
||||
|
|
18
ShareX/Properties/Resources.Designer.cs
generated
18
ShareX/Properties/Resources.Designer.cs
generated
|
@ -482,6 +482,15 @@ public static string ApplicationSettingsForm_cbLanguage_SelectedIndexChanged_Lan
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Startup has been disabled by your organization.
|
||||
/// </summary>
|
||||
public static string ApplicationSettingsForm_cbStartWithWindows_DisabledByPolicy_Text {
|
||||
get {
|
||||
return ResourceManager.GetString("ApplicationSettingsForm_cbStartWithWindows_DisabledByPolicy_Text", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Startup has been disabled in Task Manager.
|
||||
/// </summary>
|
||||
|
@ -491,6 +500,15 @@ public static string ApplicationSettingsForm_cbStartWithWindows_DisabledByUser_T
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Startup has been enabled by your organization.
|
||||
/// </summary>
|
||||
public static string ApplicationSettingsForm_cbStartWithWindows_EnabledByPolicy_Text {
|
||||
get {
|
||||
return ResourceManager.GetString("ApplicationSettingsForm_cbStartWithWindows_EnabledByPolicy_Text", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Run ShareX when Windows starts.
|
||||
/// </summary>
|
||||
|
|
|
@ -982,6 +982,12 @@ Middle click to close</value>
|
|||
<data name="mx" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\mx.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ApplicationSettingsForm_cbStartWithWindows_DisabledByPolicy_Text" xml:space="preserve">
|
||||
<value>Startup has been disabled by your organization</value>
|
||||
</data>
|
||||
<data name="ApplicationSettingsForm_cbStartWithWindows_EnabledByPolicy_Text" xml:space="preserve">
|
||||
<value>Startup has been enabled by your organization</value>
|
||||
</data>
|
||||
<data name="MustReopenForPersonalFolderChangesToTakeEffect" xml:space="preserve">
|
||||
<value>You must reopen ShareX for personal folder changes to take effect.</value>
|
||||
</data>
|
||||
|
|
|
@ -26,7 +26,6 @@ You should have received a copy of the GNU General Public License
|
|||
#if WindowsStore
|
||||
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.ApplicationModel;
|
||||
|
||||
namespace ShareX
|
||||
|
@ -36,16 +35,16 @@ public class CentennialStartupManager : IStartupManager
|
|||
private const int StartupTargetIndex = 0;
|
||||
private readonly StartupTask packageTask = StartupTask.GetForCurrentPackageAsync().GetAwaiter().GetResult()[StartupTargetIndex];
|
||||
|
||||
public StartupTaskState State
|
||||
public StartupState State
|
||||
{
|
||||
get => packageTask.State;
|
||||
get => (StartupState)packageTask.State;
|
||||
set
|
||||
{
|
||||
if (value == StartupTaskState.Enabled)
|
||||
if (value == StartupState.Enabled)
|
||||
{
|
||||
packageTask.RequestEnableAsync().GetAwaiter().GetResult();
|
||||
}
|
||||
else if (value == StartupTaskState.Disabled)
|
||||
else if (value == StartupState.Disabled)
|
||||
{
|
||||
packageTask.Disable();
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ public abstract class GenericStartupManager : IStartupManager
|
|||
{
|
||||
public abstract string StartupTargetPath { get; }
|
||||
|
||||
public StartupTaskState State
|
||||
public StartupState State
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -46,23 +46,23 @@ public StartupTaskState State
|
|||
|
||||
if (status != null && status.Length > 0 && status[0] == 3)
|
||||
{
|
||||
return StartupTaskState.DisabledByUser;
|
||||
return StartupState.DisabledByUser;
|
||||
}
|
||||
else
|
||||
{
|
||||
return StartupTaskState.Enabled;
|
||||
return StartupState.Enabled;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return StartupTaskState.Disabled;
|
||||
return StartupState.Disabled;
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value == StartupTaskState.Enabled || value == StartupTaskState.Disabled)
|
||||
if (value == StartupState.Enabled || value == StartupState.Disabled)
|
||||
{
|
||||
ShortcutHelpers.SetShortcut(value == StartupTaskState.Enabled, Environment.SpecialFolder.Startup, StartupTargetPath, "-silent");
|
||||
ShortcutHelpers.SetShortcut(value == StartupState.Enabled, Environment.SpecialFolder.Startup, StartupTargetPath, "-silent");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -23,14 +23,10 @@ You should have received a copy of the GNU General Public License
|
|||
|
||||
#endregion License Information (GPL v3)
|
||||
|
||||
#if WindowsStore
|
||||
using Windows.ApplicationModel;
|
||||
#endif
|
||||
|
||||
namespace ShareX
|
||||
{
|
||||
public interface IStartupManager
|
||||
{
|
||||
StartupTaskState State { get; set; }
|
||||
StartupState State { get; set; }
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue