Exemplo n.º 1
0
        private RegistryKey GetRegistryKeyWithRecursiveSearch(RegistryKey startPoint, RegistryModel registry)
        {
            RegistryKey value = null;

            try
            {
                if (startPoint.ContainsKey(registry.RegistryName))
                {
                    return(startPoint);
                }
                else
                {
                    foreach (string subKey in startPoint.GetSubKeyNames())
                    {
                        value = GetRegistryKeyWithRecursiveSearch(startPoint.OpenSubKey(subKey, _writable), registry);

                        if (value != null)
                        {
                            break;
                        }
                    }
                }
            }
            catch
            {
                return(null);
            }

            return(value);
        }
        public void GetRegistryKeyByRecursivity2()
        {
            RegistryFinder finder   = new RegistryFinder();
            RegistryModel  registry = new RegistryModel
            {
                RegistryName = "LogPixels"
            };

            RegistryKey value = finder.GetRegistryKeyFor(registry);

            Assert.IsTrue(value.ContainsKey(registry.RegistryName));
        }
        public void GetStraightKeyHiveLoad()
        {
            RegistryFinder finder   = new RegistryFinder();
            RegistryModel  registry = new RegistryModel
            {
                SubKeySeparatedByBackSlashes = "Control Panel\\Desktop",
                RegistryName = "LogPixels"
            };

            RegistryKey value = finder.GetRegistryKeyFor(registry, RegistryHive.CurrentUser);

            Assert.IsTrue(value.ContainsKey(registry.RegistryName));
        }
        public void GetRegistryKeyByRecursivity()
        {
            RegistryFinder finder   = new RegistryFinder();
            RegistryModel  registry = new RegistryModel
            {
                SubKeySeparatedByBackSlashes = "Control Panel\\Desktop",
                RegistryName = "LogPixels"
            };

            RegistryKey value = finder.GetRegistryKeyFor(registry);

            Assert.IsTrue(value.ContainsKey(registry.RegistryName));
        }
Exemplo n.º 5
0
        private RegistryKey GetStraightRegistryKey(RegistryKey startPoint, RegistryModel registry)
        {
            try
            {
                string[] subKeys = registry.SubKeySeparatedByBackSlashes.Split('\\');

                bool navigatedAllSubKeys = true;
                foreach (string subKey in subKeys)
                {
                    if (startPoint.Name == subKey)
                    {
                        continue;
                    }

                    var  tempSubKey     = startPoint.OpenSubKey(subKey, _writable);
                    bool isKeyNotFolder = tempSubKey == null && startPoint.ContainsKey(subKey);

                    if (tempSubKey == null)
                    {
                        registry.LastRealSubKey = startPoint;
                        navigatedAllSubKeys     = false;
                    }

                    if (!isKeyNotFolder)
                    {
                        startPoint = tempSubKey;
                    }
                }

                if (navigatedAllSubKeys)
                {
                    registry.LastRealSubKey = startPoint;
                }

                return(startPoint);
            }
            catch
            {
                return(null);
            }
        }