public void PerformTreatment() { string featureName; if (Environment.Is64BitOperatingSystem) { featureName = IE64BitName; } else { featureName = IE32BitName; } try { using (DismSession session = DismApi.OpenOnlineSession()) { DismFeatureInfo info = DismApi.GetFeatureInfo(session, featureName); if ( info.FeatureState == DismPackageFeatureState.NotPresent || info.FeatureState == DismPackageFeatureState.Removed || info.FeatureState == DismPackageFeatureState.Staged) { logger.Log("Internet Explorer 11 is not present on the system."); return; } if (info.FeatureState == DismPackageFeatureState.UninstallPending) { logger.Log("Internet Explorer 11 is already pending uninstall."); return; } try { logger.Log("Disabling Internet Explorer 11..."); DismApi.DisableFeature(session, featureName, null, true); } catch (DismRebootRequiredException ex) { logger.Log("Successfully disabled Internet Explorer 11. {0}", ex.Message); return; } logger.Log("Successfully disabled Internet Explorer 11."); } } catch (Exception ex) { logger.Log("An error occurred while disabling Internet Explorer: {0}", ex.Message); } }
public WindowsFeature(DismFeatureInfo feature) { this._featureName = feature.FeatureName; this._featureState = feature.FeatureState; this._displayName = feature.DisplayName; this._description = feature.Description; this._restartRequired = feature.RestartRequired; this._customProperties = Utilites.PtrToArray <DismCustomProperty>( feature.CustomProperty, feature.CustomPropertyCount ).ToDictionary( f => string.Format("{0}\\{1}", f.Path, f.Name), f => f.Value ); }
public override bool ShouldPerformTreatment() { try { using (DismSession session = DismApi.OpenOnlineSession()) { DismFeatureInfo info = DismApi.GetFeatureInfo(session, resolvedFeatureName); if ( info.FeatureState == DismPackageFeatureState.NotPresent || info.FeatureState == DismPackageFeatureState.Removed || info.FeatureState == DismPackageFeatureState.Staged || info.FeatureState == DismPackageFeatureState.UninstallPending) { return(false); } } } catch { return(false); } return(true); }
private (string statusText, Color labelColor, bool canBeEnabled) GetLabelStatusForDismFeature(DismFeatureInfo featureInfo) { switch (featureInfo.FeatureState) { case DismPackageFeatureState.Staged: return(Celeste_Launcher_Gui.Properties.Resources.WindowsFeatureHelperFeatureStaged, Colors.Chocolate, true); case DismPackageFeatureState.PartiallyInstalled: return(Celeste_Launcher_Gui.Properties.Resources.WindowsFeatureHelperFeaturePartiallyInstalled, Colors.Chocolate, true); case DismPackageFeatureState.Installed: return(Celeste_Launcher_Gui.Properties.Resources.WindowsFeatureHelperFeatureInstalled, Colors.DarkGreen, false); case DismPackageFeatureState.InstallPending: return(Celeste_Launcher_Gui.Properties.Resources.WindowsFeatureHelperFeatureIsPendingInstall, Colors.DarkGreen, false); default: return(string.Format(Celeste_Launcher_Gui.Properties.Resources.WindowsFeatureHelperFeatureUnsupported, featureInfo.FeatureState), Colors.Red, false); } }