Beispiel #1
0
        //AVVIO APP CON WINDOWS

        async private void requestButton_Click(object sender, RoutedEventArgs e)

        {
            StartupTask startupTask = await StartupTask.GetAsync("MyStartupId");

            requestResult.Text = startupTask.State.ToString();
            switch (startupTask.State)

            {
            case StartupTaskState.Disabled:

                // Task is disabled but can be enabled.
                StartupTaskState newState = await startupTask.RequestEnableAsync();

                requestResult.Text = newState.ToString();
                Debug.WriteLine("Request to enable startup, result = {0}", newState);
                break;

            case StartupTaskState.DisabledByUser:
                // Task is disabled and user must enable it manually.
                MessageDialog dialog = new MessageDialog(
                    "I know you don't want this app to run " +
                    "as soon as you sign in, but if you change your mind, " +
                    "you can enable this in the Startup tab in Task Manager.",
                    "TestStartup");

                await dialog.ShowAsync();

                requestResult.Text = "Disabilitato";
                break;

            case StartupTaskState.DisabledByPolicy:
                Debug.WriteLine("Startup disabled by group policy, or not supported on this device");
                requestResult.Text = "Disabilitato";
                break;

            case StartupTaskState.Enabled:
                Debug.WriteLine("Startup is enabled.");
                requestResult.Text = "Automatico";
                break;
            }
        }
Beispiel #2
0
        public FirstTimeConfigForm()
        {
            InitializeComponent();
            pbLogo.Image = ImageHelpers.ResizeImage(ShareXResources.Logo, 128, 128);
            StartupTaskState state = StartupManagerFactory.StartupManager.State;

            cbRunStartup.Checked = state == StartupTaskState.Enabled;
            cbRunStartup.Enabled = state != StartupTaskState.DisabledByUser;

            cbShellContextMenuButton.Checked = IntegrationHelpers.CheckShellContextMenuButton();
            cbSendToMenu.Checked             = IntegrationHelpers.CheckSendToMenuButton();

#if STEAM
            cbSteamInApp.Checked = IntegrationHelpers.CheckSteamShowInApp();
#else
            cbSteamInApp.Visible = false;
#endif

            loaded = true;
        }
        public async void Pin()
        {
            if (ApiInformation.IsTypePresent("Windows.UI.StartScreen.StartScreenManager"))
            {
                StartupTask startupTask = await StartupTask.GetAsync("AhnacSolutions");

                StartupTaskState state = await startupTask.RequestEnableAsync();

                var entry = (await Package.Current.GetAppListEntriesAsync())[0];

                var startScreenManager = StartScreenManager.GetDefault();

                bool supportsPin = startScreenManager.SupportsAppListEntry(entry);

                if (supportsPin)
                {
                    var  appListEntry = (await Package.Current.GetAppListEntriesAsync())[0];
                    bool didPin       = await StartScreenManager.GetDefault().RequestAddAppListEntryAsync(appListEntry);
                }
            }
        }
Beispiel #4
0
        private async void requestStartupButton_Click(object sender, RoutedEventArgs e)
        {
            StartupTask startupTask = await StartupTask.GetAsync("yataStartup");

            MessageDialog dialog = new MessageDialog("Yata! is already running at startup.", "Startup task has been enabled already.");

            switch (startupTask.State)
            {
            case StartupTaskState.Disabled:
                // Task is disabled but can be enabled.
                StartupTaskState newState = await startupTask.RequestEnableAsync();

                Debug.WriteLine("Request to enable startup, result = {0}", newState);
                break;

            case StartupTaskState.DisabledByUser:
                // Task is disabled and user must enable it manually.
                dialog.Content = "In order for this app to run at start up, you need to run task manager" +
                                 ", select the \"Start-up\" tab " +
                                 "then enable \"Yata!\" from there!";
                dialog.Title = "You need to this yourself 😞";
                await dialog.ShowAsync();

                break;

            case StartupTaskState.DisabledByPolicy:
                dialog.Content =
                    "Please contact your system administrator for more information";
                dialog.Title = "Disabled by group policy";
                await dialog.ShowAsync();

                break;

            case StartupTaskState.Enabled:
                await dialog.ShowAsync();

                break;
            }
        }
Beispiel #5
0
        /// <inheritdoc/>
        public async Task ToggleAutostart()
        {
            StartupTask startupTask = await StartupTask.GetAsync(_startupId);

            StartupTaskState newState = StartupTaskState.Disabled;

            switch (startupTask.State)
            {
            case StartupTaskState.DisabledByPolicy:
            case StartupTaskState.DisabledByUser:
            case StartupTaskState.Disabled:
                newState = await startupTask.RequestEnableAsync();

                _logger.LogInformation($"App autostart: {newState.ToString()}");
                break;

            case StartupTaskState.EnabledByPolicy:
            case StartupTaskState.Enabled:
                startupTask.Disable();
                _logger.LogInformation($"App autostart: disabled");
                break;
            }
        }
        private void CheckWindowsStoreStartup()
        {
            if (cbStartWithWindows.Enabled)
            {
                return;
            }

            lblWindowsStoreStartupStatus.Text    = "Checking startup state...";
            lblWindowsStoreStartupStatus.Visible = true;

            StartupTaskState state = StartupTaskState.Error;

            TaskEx.Run(() =>
            {
                state = IntegrationHelpers.CheckStartupWindowsStore();
            },
                       () =>
            {
                if (!IsDisposed)
                {
                    if (state == StartupTaskState.Error)
                    {
                        lblWindowsStoreStartupStatus.Text = "Startup state check failed. Check debug log for more info.";
                    }
                    else if (state == StartupTaskState.DisabledByUser)
                    {
                        lblWindowsStoreStartupStatus.Text = "The startup has been disabled by the user.";
                    }
                    else
                    {
                        lblWindowsStoreStartupStatus.Visible = false;
                        cbStartWithWindows.Checked           = state == StartupTaskState.Enabled;
                        cbStartWithWindows.Enabled           = true;
                    }
                }
            });
        }
        private async Task UpdateStartupTaskState()
        {
            var startupTask = await StartupTask.GetAsync("AutoLaunchAppTask");

            State = startupTask.State;
            if (IsChecked)
            {
                switch (State)
                {
                case StartupTaskState.Disabled:
                    // Task is disabled but can be enabled.
                    State = await startupTask.RequestEnableAsync();     // ensure that you are on a UI thread when you call RequestEnableAsync()

                    break;

                case StartupTaskState.DisabledByUser:
                    // Task is disabled and user must enable it manually.
                    MessageDialog dialog = new MessageDialog(
                        "You have disabled this app's ability to run " +
                        "as soon as you sign in, but if you change your mind, " +
                        "you can enable this in the Startup tab in Task Manager.",
                        "TestStartup");
                    await dialog.ShowAsync();

                    break;

                case StartupTaskState.DisabledByPolicy:
                    Debug.WriteLine("Startup disabled by group policy, or not supported on this device");
                    break;
                }
            }
            else
            {
                startupTask.Disable();
                State = startupTask.State;
            }
        }
        private void ConfigureWindowsStoreStartup()
        {
            if (cbStartWithWindows.Enabled)
            {
                cbStartWithWindows.Enabled           = false;
                lblWindowsStoreStartupStatus.Text    = "Configuring startup...";
                lblWindowsStoreStartupStatus.Visible = true;

                bool             enable = cbStartWithWindows.Checked;
                StartupTaskState state  = StartupTaskState.Error;

                TaskEx.Run(() =>
                {
                    state = IntegrationHelpers.ConfigureStartupWindowsStore(enable);
                },
                           () =>
                {
                    if (!IsDisposed)
                    {
                        if (state == StartupTaskState.Error)
                        {
                            lblWindowsStoreStartupStatus.Text = "Startup configuration failed. Check debug log for more info.";
                        }
                        else if (state == StartupTaskState.DisabledByUser)
                        {
                            lblWindowsStoreStartupStatus.Text = "The startup has been disabled by the user.";
                        }
                        else
                        {
                            lblWindowsStoreStartupStatus.Visible = false;
                            cbStartWithWindows.Enabled           = true;
                        }
                    }
                });
            }
        }
        private void UpdateControls()
        {
            ready = false;

            // General
            ChangeLanguage(Program.Settings.Language);

            cbShowTray.Checked  = Program.Settings.ShowTray;
            cbSilentRun.Enabled = Program.Settings.ShowTray;
            cbSilentRun.Checked = Program.Settings.SilentRun;
            cbTrayIconProgressEnabled.Checked  = Program.Settings.TrayIconProgressEnabled;
            cbTaskbarProgressEnabled.Enabled   = TaskbarManager.IsPlatformSupported;
            cbTaskbarProgressEnabled.Checked   = Program.Settings.TaskbarProgressEnabled;
            cbRememberMainFormPosition.Checked = Program.Settings.RememberMainFormPosition;
            cbRememberMainFormSize.Checked     = Program.Settings.RememberMainFormSize;

            cbTrayLeftDoubleClickAction.SelectedIndex = (int)Program.Settings.TrayLeftDoubleClickAction;
            cbTrayLeftClickAction.SelectedIndex       = (int)Program.Settings.TrayLeftClickAction;
            cbTrayMiddleClickAction.SelectedIndex     = (int)Program.Settings.TrayMiddleClickAction;

#if STEAM || WindowsStore
            cbCheckPreReleaseUpdates.Visible = false;
#else
            cbCheckPreReleaseUpdates.Checked = Program.Settings.CheckPreReleaseUpdates;
#endif

            // Integration
#if WindowsStore
            cbStartWithWindows.Enabled = false;
            StartupTaskState state = StartupTaskState.Error;

            TaskEx.Run(() =>
            {
                state = IntegrationHelpers.CheckStartupWindowsStore();
            },
                       () =>
            {
                if (!IsDisposed && state != StartupTaskState.Error && state != StartupTaskState.DisabledByUser)
                {
                    cbStartWithWindows.Checked = state == StartupTaskState.Enabled;
                    cbStartWithWindows.Enabled = true;
                }
            });

            cbShellContextMenu.Visible = false;
            cbSendToMenu.Visible       = false;
            gbChrome.Visible           = false;
            gbFirefox.Visible          = false;
#else
            cbStartWithWindows.Checked         = IntegrationHelpers.CheckStartupShortcut();
            cbShellContextMenu.Checked         = IntegrationHelpers.CheckShellContextMenuButton();
            cbSendToMenu.Checked               = IntegrationHelpers.CheckSendToMenuButton();
            cbChromeExtensionSupport.Checked   = IntegrationHelpers.CheckChromeExtensionSupport();
            btnChromeOpenExtensionPage.Enabled = cbChromeExtensionSupport.Checked;
            cbFirefoxAddonSupport.Checked      = IntegrationHelpers.CheckFirefoxAddonSupport();
            btnFirefoxOpenAddonPage.Enabled    = cbFirefoxAddonSupport.Checked;
#endif

#if STEAM
            cbSteamShowInApp.Checked = IntegrationHelpers.CheckSteamShowInApp();
#else
            gbSteam.Visible = false;
#endif

            // Paths
            lastPersonalPath           = Program.ReadPersonalPathConfig();
            txtPersonalFolderPath.Text = lastPersonalPath;
            UpdatePersonalFolderPathPreview();
            cbUseCustomScreenshotsPath.Checked = Program.Settings.UseCustomScreenshotsPath;
            txtCustomScreenshotsPath.Text      = Program.Settings.CustomScreenshotsPath;
            txtSaveImageSubFolderPattern.Text  = Program.Settings.SaveImageSubFolderPattern;

            // Export / Import
            cbExportSettings.Checked = Program.Settings.ExportSettings;
            cbExportHistory.Checked  = Program.Settings.ExportHistory;
            cbExportLogs.Checked     = Program.Settings.ExportLogs;
            UpdateExportButton();

            // Proxy
            cbProxyMethod.SelectedIndex = (int)Program.Settings.ProxySettings.ProxyMethod;
            txtProxyUsername.Text       = Program.Settings.ProxySettings.Username;
            txtProxyPassword.Text       = Program.Settings.ProxySettings.Password;
            txtProxyHost.Text           = Program.Settings.ProxySettings.Host ?? "";
            nudProxyPort.SetValue(Program.Settings.ProxySettings.Port);
            UpdateProxyControls();

            // Upload
            nudUploadLimit.SetValue(Program.Settings.UploadLimit);

            cbBufferSize.Items.Clear();
            for (int i = 0; i < MaxBufferSizePower; i++)
            {
                string size = ((long)(Math.Pow(2, i) * 1024)).ToSizeString(Program.Settings.BinaryUnits, 0);
                cbBufferSize.Items.Add(size);
            }

            cbBufferSize.SelectedIndex = Program.Settings.BufferSizePower.Between(0, MaxBufferSizePower);

            lvClipboardFormats.Items.Clear();
            foreach (ClipboardFormat cf in Program.Settings.ClipboardContentFormats)
            {
                AddClipboardFormat(cf);
            }

            nudRetryUpload.SetValue(Program.Settings.MaxUploadFailRetry);
            chkUseSecondaryUploaders.Checked = Program.Settings.UseSecondaryUploaders;
            tlpBackupDestinations.Enabled    = Program.Settings.UseSecondaryUploaders;

            Program.Settings.SecondaryImageUploaders.AddRange(Helpers.GetEnums <ImageDestination>().Where(n => Program.Settings.SecondaryImageUploaders.All(e => e != n)));
            Program.Settings.SecondaryTextUploaders.AddRange(Helpers.GetEnums <TextDestination>().Where(n => Program.Settings.SecondaryTextUploaders.All(e => e != n)));
            Program.Settings.SecondaryFileUploaders.AddRange(Helpers.GetEnums <FileDestination>().Where(n => Program.Settings.SecondaryFileUploaders.All(e => e != n)));

            Program.Settings.SecondaryImageUploaders.Where(n => Helpers.GetEnums <ImageDestination>().All(e => e != n)).ForEach(x => Program.Settings.SecondaryImageUploaders.Remove(x));
            Program.Settings.SecondaryTextUploaders.Where(n => Helpers.GetEnums <TextDestination>().All(e => e != n)).ForEach(x => Program.Settings.SecondaryTextUploaders.Remove(x));
            Program.Settings.SecondaryFileUploaders.Where(n => Helpers.GetEnums <FileDestination>().All(e => e != n)).ForEach(x => Program.Settings.SecondaryFileUploaders.Remove(x));

            lvSecondaryImageUploaders.Items.Clear();
            Program.Settings.SecondaryImageUploaders.ForEach <ImageDestination>(x => lvSecondaryImageUploaders.Items.Add(new ListViewItem(x.GetLocalizedDescription())
            {
                Tag = x
            }));
            lvSecondaryTextUploaders.Items.Clear();
            Program.Settings.SecondaryTextUploaders.ForEach <TextDestination>(x => lvSecondaryTextUploaders.Items.Add(new ListViewItem(x.GetLocalizedDescription())
            {
                Tag = x
            }));
            lvSecondaryFileUploaders.Items.Clear();
            Program.Settings.SecondaryFileUploaders.ForEach <FileDestination>(x => lvSecondaryFileUploaders.Items.Add(new ListViewItem(x.GetLocalizedDescription())
            {
                Tag = x
            }));

            // History
            cbHistorySaveTasks.Checked = Program.Settings.HistorySaveTasks;
            cbHistoryCheckURL.Checked  = Program.Settings.HistoryCheckURL;

            cbRecentTasksSave.Checked = Program.Settings.RecentTasksSave;
            nudRecentTasksMaxCount.SetValue(Program.Settings.RecentTasksMaxCount);
            cbRecentTasksShowInMainWindow.Checked        = Program.Settings.RecentTasksShowInMainWindow;
            cbRecentTasksShowInTrayMenu.Checked          = Program.Settings.RecentTasksShowInTrayMenu;
            cbRecentTasksTrayMenuMostRecentFirst.Checked = Program.Settings.RecentTasksTrayMenuMostRecentFirst;

            // Print
            cbDontShowPrintSettingDialog.Checked = Program.Settings.DontShowPrintSettingsDialog;
            cbPrintDontShowWindowsDialog.Checked = !Program.Settings.PrintSettings.ShowPrintDialog;

            // Advanced
            pgSettings.SelectedObject = Program.Settings;

            tttvMain.MainTabControl = tcSettings;

            ready = true;
        }
Beispiel #10
0
        private async void EnableStartupSwitch_Toggled(object sender, RoutedEventArgs e)
        {
            if (!_isInit)
            {
                return;
            }
            if (_tempStartupHandle)
            {
                _tempStartupHandle = false;
                return;
            }
            bool        isOn        = EnableStartupSwitch.IsOn;
            StartupTask startupTask = await StartupTask.GetAsync("RichasyBiliBili");

            bool isHandled = false;

            if (isOn)
            {
                switch (startupTask.State)
                {
                case StartupTaskState.Disabled:
                    StartupTaskState newState = await startupTask.RequestEnableAsync();

                    if (newState == StartupTaskState.Enabled || newState == StartupTaskState.EnabledByPolicy)
                    {
                        isHandled = true;
                        new TipPopup("已开启应用自启动").ShowMessage();
                    }
                    else
                    {
                        new TipPopup("启动失败").ShowMessage();
                    }
                    break;

                case StartupTaskState.DisabledByUser:
                    await new ConfirmDialog("您已在任务管理器中禁用了 哔哩 的启动项,请先启用它").ShowAsync();
                    break;

                case StartupTaskState.DisabledByPolicy:
                    await new ConfirmDialog("受限于设备或组织策略,您无法设置启动项").ShowAsync();
                    break;

                case StartupTaskState.Enabled:
                case StartupTaskState.EnabledByPolicy:
                    isHandled = true;
                    break;

                default:
                    break;
                }
            }
            else
            {
                switch (startupTask.State)
                {
                case StartupTaskState.Disabled:
                case StartupTaskState.DisabledByUser:
                case StartupTaskState.DisabledByPolicy:
                    isHandled = true;
                    break;

                case StartupTaskState.Enabled:
                    startupTask.Disable();
                    isHandled = true;
                    new TipPopup("已禁用应用自启").ShowMessage();
                    break;

                case StartupTaskState.EnabledByPolicy:
                    await new ConfirmDialog("受限于设备或组织策略,您无法设置启动项").ShowAsync();
                    break;

                default:
                    break;
                }
            }
            if (!isHandled)
            {
                _tempStartupHandle       = true;
                EnableStartupSwitch.IsOn = !isOn;
            }
        }
 /// <summary>
 /// Logs the result of a request to enable startup task.
 /// </summary>
 /// <param name="newState"></param>
 public static void StartupTaskRequestEnableResult(StartupTaskState newState)
 {
     EventLog.Log.Info($"Request to enable startup resulted in new state: {newState}");
 }