Пример #1
0
        private async void Btn_FixNetFx_Click(object sender, EventArgs e)
        {
            Enabled = false;
            try
            {
                var feature = await Dism.EnableWindowsFeatures("NetFx3", DismProgress);

                // ReSharper disable once SwitchStatementMissingSomeCases
                switch (feature.FeatureState)
                {
                case DismPackageFeatureState.Staged:
                    l_NetFx3State.Text      = @"Staged";
                    l_NetFx3State.ForeColor = Color.Chocolate;
                    btn_FixNetFx.Enabled    = true;
                    break;

                case DismPackageFeatureState.PartiallyInstalled:
                    l_NetFx3State.Text      = @"Partially installed";
                    l_NetFx3State.ForeColor = Color.Chocolate;
                    btn_FixNetFx.Enabled    = true;
                    break;

                case DismPackageFeatureState.Installed:
                    l_NetFx3State.Text      = @"Installed";
                    l_NetFx3State.ForeColor = Color.DarkGreen;
                    btn_FixNetFx.Enabled    = false;
                    break;

                case DismPackageFeatureState.InstallPending:
                    l_NetFx3State.Text      = @"Install pending";
                    l_NetFx3State.ForeColor = Color.DarkGreen;
                    btn_FixNetFx.Enabled    = false;
                    break;

                default:
                    l_NetFx3State.Text      = $@"Not supported ({feature.FeatureState})";
                    l_NetFx3State.ForeColor = Color.Red;
                    btn_FixNetFx.Enabled    = false;
                    break;
                }
            }
            catch (Exception ex)
            {
                MsgBox.ShowMessage(
                    $"Error: {ex.Message}",
                    @"Celeste Fan Project",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            Enabled = true;
        }
Пример #2
0
        private async void EnableNetFrameworkBtnClick(object sender, RoutedEventArgs e)
        {
            IsEnabled = false;
            try
            {
                var feature = await Dism.EnableWindowsFeatures("NetFx3", OnDismInstallProgress);

                var(statusText, colorLabel, canBeEnabled) = GetLabelStatusForDismFeature(feature);

                NetFrameworkStatusLabel.Text       = statusText;
                NetFrameworkStatusLabel.Foreground = new SolidColorBrush(colorLabel);
                EnableNetFrameworkBtn.IsEnabled    = canBeEnabled;
            }
            catch (Exception ex)
            {
                Logger.Error(ex, ex.Message);
                GenericMessageDialog.Show(Celeste_Launcher_Gui.Properties.Resources.GenericUnexpectedErrorMessage, DialogIcon.Error, DialogOptions.Ok);
            }
            IsEnabled = true;
        }