Ejemplo n.º 1
0
Archivo: UWP.cs Proyecto: ncheng8/Wox
        public static Application[] All()
        {
            var windows10 = new Version(10, 0);
            var support   = Environment.OSVersion.Version.Major >= windows10.Major;

            if (support)
            {
                var applications = CurrentUserPackages().AsParallel().SelectMany(p =>
                {
                    UWP u;
                    try
                    {
                        u = new UWP(p);
                    }
                    catch (Exception e)
                    {
                        e.Data.Add(nameof(p.Id.FullName), p.Id.FullName);
                        Logger.WoxError($"Cannot parse UWP {p.Id.FullName}", e);
                        return(new Application[] { });
                    }
                    return(u.Apps);
                }).ToArray();

                return(applications);
            }
            else
            {
                return(new Application[] { });
            }
        }
Ejemplo n.º 2
0
        public static Application[] All()
        {
            var windows10 = new Version(10, 0);
            var support   = Environment.OSVersion.Version.Major >= windows10.Major;

            if (support)
            {
                var applications = CurrentUserPackages().AsParallel().SelectMany(p =>
                {
                    UWP u;
                    try
                    {
                        u = new UWP(p);
                    }
                    catch (Exception e)
                    {
                        Log.Exception($"|UWP.All|Can't convert Package to UWP for <{p.Id.FullName}>:", e);
                        return(new Application[] { });
                    }
                    return(u.Apps);
                }).ToArray();
                return(applications);
            }
            else
            {
                return(new Application[] { });
            }
        }
Ejemplo n.º 3
0
        public static Application[] All()
        {
            var windows10 = new Version(10, 0);
            var support   = Environment.OSVersion.Version.Major >= windows10.Major;

            if (support)
            {
                ConcurrentBag <Application> bag = new ConcurrentBag <Application>();
                Parallel.ForEach(CurrentUserPackages(), (p, state) =>
                {
                    UWP u;
                    try
                    {
                        u = new UWP(p);
                        foreach (var a in u.Apps)
                        {
                            bag.Add(a);
                        }
                    }
                    catch (Exception e)
                    {
                        e.Data.Add(nameof(p.Id.FullName), p.Id.FullName);
                        Logger.WoxError($"Cannot parse UWP {p.Id.FullName}", e, false, true);
                    }
                }
                                 );
                return(bag.ToArray());
            }
            else
            {
                return(new Application[] { });
            }
        }
Ejemplo n.º 4
0
Archivo: UWP.cs Proyecto: alexmg/Wox
        public static Application[] All()
        {
            var windows10 = new Version(10, 0);
            var support   = Environment.OSVersion.Version.Major >= windows10.Major;

            if (support)
            {
                var application = CurrentUserPackages().AsParallel().SelectMany(p =>
                {
                    try
                    {
                        var u = new UWP(p);
                        return(u.Apps);
                    }
                    catch (Exception e)
                    {
                        // if there are errors, just ignore it and continue
                        var message = $"Can't parse {p.Id.Name}: {e.Message}";
                        Log.Error(message);
                        return(new Application[] { });
                    }
                });
                return(application.ToArray());
            }
            else
            {
                return(new Application[] { });
            }
        }
Ejemplo n.º 5
0
 public Application(UWP package, string userModelID, string fullName, string name, string displayname, string description, string logoUri, string backgroundColor)
 {
     UserModelId     = userModelID;
     Enabled         = true;
     Package         = package;
     DisplayName     = ResourcesFromPri(fullName, name, displayname);
     Description     = ResourcesFromPri(fullName, name, description);
     LogoPath        = PathFromUri(fullName, name, Location, logoUri);
     BackgroundColor = backgroundColor;
 }
Ejemplo n.º 6
0
            public Application(IAppxManifestApplication manifestApp, UWP package)
            {
                UserModelId     = manifestApp.GetAppUserModelId();
                DisplayName     = manifestApp.GetStringValue("DisplayName");
                Description     = manifestApp.GetStringValue("Description");
                BackgroundColor = manifestApp.GetStringValue("BackgroundColor");
                Package         = package;

                DisplayName = ResourceFromPri(package.FullName, DisplayName);
                Description = ResourceFromPri(package.FullName, Description);
                LogoUri     = LogoUriFromManifest(manifestApp);
                LogoPath    = LogoPathFromUri(LogoUri);
            }
Ejemplo n.º 7
0
            public Application(IAppxManifestApplication manifestApp, UWP package)
            {
                UserModelId      = manifestApp.GetAppUserModelId();
                UniqueIdentifier = manifestApp.GetAppUserModelId();
                DisplayName      = manifestApp.GetStringValue("DisplayName");
                Description      = manifestApp.GetStringValue("Description");
                BackgroundColor  = manifestApp.GetStringValue("BackgroundColor");
                Package          = package;
                DisplayName      = ResourcesFromPri(package.FullName, package.Name, DisplayName);
                Description      = ResourcesFromPri(package.FullName, package.Name, Description);
                LogoUri          = LogoUriFromManifest(manifestApp);
                LogoPath         = FilesFromPri(package.FullName, package.Name, LogoUri);

                Enabled = true;
            }
Ejemplo n.º 8
0
        public static List <UWP> PackageFoldersFromRegistry()
        {
            var activable          = new HashSet <string>();
            var activableReg       = @"Software\Classes\ActivatableClasses\Package";
            var activableRegSubKey = Registry.CurrentUser.OpenSubKey(activableReg);

            foreach (var name in activableRegSubKey.GetSubKeyNames())
            {
                activable.Add(name);
            }

            var packages         = new List <UWP>();
            var packageReg       = @"Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Repository\Packages";
            var packageRegSubKey = Registry.CurrentUser.OpenSubKey(packageReg);

            foreach (var name in packageRegSubKey.GetSubKeyNames())
            {
                var packageKey = packageRegSubKey.OpenSubKey(name);
                var framework  = packageKey.GetValue("Framework");
                if (framework != null)
                {
                    if ((int)framework == 1)
                    {
                        continue;
                    }
                }
                var valueFolder = packageKey.GetValue("PackageRootFolder");
                var valueID     = packageKey.GetValue("PackageID");
                if (valueID != null && valueFolder != null && activable.Contains(valueID))
                {
                    var location = (string)valueFolder;
                    var id       = (string)valueID;
                    var uwp      = new UWP(id, location);
                    packages.Add(uwp);
                }
            }

            // only exception windows.immersivecontrolpanel_10.0.2.1000_neutral_neutral_cw5n1h2txyewy
            var settingsID       = activable.First(a => a.StartsWith("windows.immersivecontrolpanel"));
            var settingsLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "ImmersiveControlPanel");
            var settings         = new UWP(settingsID, settingsLocation);

            packages.Add(settings);

            return(packages);
        }
Ejemplo n.º 9
0
Archivo: UWP.cs Proyecto: yzx2001/Wox
        public static Application[] All()
        {
            var windows10 = new Version(10, 0);
            var support   = Environment.OSVersion.Version.Major >= windows10.Major;

            if (support)
            {
                var applications = CurrentUserPackages().AsParallel().SelectMany(p =>
                {
                    UWP u;
                    try
                    {
                        u = new UWP(p);
                    }
#if !DEBUG
                    catch (Exception e)
                    {
                        ProgramLogger.LogException($"|UWP|All|{p.InstalledLocation}|An unexpected error occured and "
                                                   + $"unable to convert Package to UWP for {p.Id.FullName}", e);
                        return(new Application[] { });
                    }
#endif
#if DEBUG //make developer aware and implement handling
                    catch
                    {
                        throw;
                    }
#endif
                    return(u.Apps);
                }).ToArray();

                var updatedListWithoutDisabledApps = applications
                                                     .Where(t1 => !Main._settings.DisabledProgramSources
                                                            .Any(x => x.UniqueIdentifier == t1.UniqueIdentifier))
                                                     .Select(x => x);

                return(updatedListWithoutDisabledApps.ToArray());
            }
            else
            {
                return(new Application[] { });
            }
        }
Ejemplo n.º 10
0
            public Application(IAppxManifestApplication manifestApp, UWP package)
            {
                UserModelId = manifestApp.GetAppUserModelId();
                DisplayName = manifestApp.GetStringValue("DisplayName");
                Description = manifestApp.GetStringValue("Description");
                BackgroundColor = manifestApp.GetStringValue("BackgroundColor");
                Package = package;

                DisplayName = ResourceFromPri(package.FullName, DisplayName);
                Description = ResourceFromPri(package.FullName, Description);
                LogoUri = LogoUriFromManifest(manifestApp);
                LogoPath = LogoPathFromUri(LogoUri);
            }