Exemplo n.º 1
0
        public RegistryKeyFragment(string KeyPath)
        {
            string cummPath = null;
            string keyPath  = KeyPath;

            while (keyPath.IsNullOrEmpty() == false)
            {
                var rv       = RegistryKeyExt.SplitLeft(keyPath);
                var rootName = rv.Item1;
                keyPath = rv.Item2;

                cummPath = RegistryKeyExt.Combine(cummPath, rootName);

                var item = new FragmentKeyItem()
                {
                    KeyPath = cummPath
                };

                if (this.KeyPartRoot == null)
                {
                    this.KeyPartRoot = item;
                }
                else
                {
                    var lastChild = this.KeyPartRoot.LastChildDeep;
                    lastChild.Children.Add(item);
                }
            }

            // from the full key of the fragment, list all the sub keys and values.
            if (this.KeyPartRoot != null)
            {
                var lastChild = this.KeyPartRoot.LastChildDeep;
                using (var rk = RegistryKeyExt.OpenRegistryKey(KeyPath))
                {
                    AddSubKeys(rk, lastChild);
                    AddValues(rk, lastChild);
                }
            }
        }
Exemplo n.º 2
0
            protected override void FillChildren()
            {
                Children.Clear();

                using (var regKey = RegistryKeyExt.OpenRegistryKey(this.KeyPath))
                {
                    bool isRoot = regKey.IsRegistryHive();

                    foreach (var keyName in regKey.GetSubKeyNames())
                    {
                        using (var subKey = regKey.OpenSubKey(keyName))
                        {
                            var model = new FragmentKeyItem()
                            {
                                Parent            = this,
                                HasChildrenMarker = CollectionMarker.HasChildrenMarker
                            };
                            Children.Add(model);
                        }
                    }
                }
            }
Exemplo n.º 3
0
            /// <summary>
            /// FragmentKeyItems do not contain expandable markers.
            /// </summary>
            protected override void FillExpandableMarker()
            {
                return;

#if skip
                using (var regKey = RegistryKeyExt.OpenRegistryKey(this.KeyPath))
                {
                    if (regKey != null)
                    {
                        if (regKey.GetSubKeyNames().Count() > 0)
                        {
                            var model = new FragmentKeyItem()
                            {
                                Parent            = this,
                                HasChildrenMarker = CollectionMarker.HasChildrenMarker
                            };
                            Children.Add(model);
                        }
                    }
                }
#endif
            }