UWPHelper.cs 1.6 KB

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