UWPHelper.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Management.Automation;
  5. using System.Text;
  6. using System.Windows.Forms;
  7. namespace Optimizer
  8. {
  9. internal static class UWPHelper
  10. {
  11. internal static Dictionary<string, string> GetUWPApps(bool showAll)
  12. {
  13. Dictionary<string, string> modernApps = new Dictionary<string, string>();
  14. using (PowerShell script = PowerShell.Create())
  15. {
  16. if (showAll)
  17. {
  18. script.AddScript("Get-AppxPackage | Select Name,InstallLocation");
  19. }
  20. else
  21. {
  22. script.AddScript(@"Get-AppxPackage | Where {$_.NonRemovable -like ""False""} | Select Name,InstallLocation");
  23. }
  24. string[] tmp;
  25. foreach (PSObject x in script.Invoke())
  26. {
  27. tmp = x.ToString().Replace("@", string.Empty).Replace("{", string.Empty).Replace("}", string.Empty).Replace("Name=", string.Empty).Replace("InstallLocation=", string.Empty).Trim().Split(';');
  28. modernApps.Add(tmp[0], tmp[1]);
  29. }
  30. }
  31. return modernApps;
  32. }
  33. internal static bool UninstallUWPApp(string appName)
  34. {
  35. using (PowerShell script = PowerShell.Create())
  36. {
  37. script.AddScript(string.Format("Get-AppxPackage -AllUsers '{0}' | Remove-AppxPackage", appName));
  38. script.Invoke();
  39. return script.Streams.Error.Count > 0;
  40. // not working on Windows 7 anymore
  41. //return script.HadErrors;
  42. }
  43. }
  44. // TODO: Reinstall default pre-installed apps
  45. }
  46. }