Example #1
0
        public static List <Thread> LoadBigItems()
        {
            List <Thread> threads = new List <Thread>();

            foreach (KeyValuePair <string, subKey> kv in bigKeys)
            {
                LoadRegHive lrh = new LoadRegHive(kv.Key, kv.Value);
                Thread      th  = new Thread(new ThreadStart(lrh.Load));
                th.Start();
                threads.Add(th);
            }

            return(threads);
        }
Example #2
0
        public static List <Thread> LoadRegHives()
        {
            Dictionary <string, subKey> keys = new Dictionary <string, subKey>()
            {
                //this one will be lazy loaded
                //   {@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components",null },

                { @"HKEY_CLASSES_ROOT\Installer\Products", new subKey("SourceList", "PackageName") },
                { @"HKEY_CLASSES_ROOT\Installer\Patches", new subKey("SourceList", "PackageName") },
                { @"HKEY_CLASSES_ROOT\Installer\Dependencies", null },
                { @"HKEY_CLASSES_ROOT\Installer\Features", null },
                { @"HKEY_CLASSES_ROOT\Installer\UpgradeCodes", null },
                { @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products", null },
                { @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches", null },

                { @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes", null },

                //COM+ related
                { @"HKEY_CLASSES_ROOT\Wow6432Node\CLSID", new subKey("InProcServer32", "") },
                { @"HKEY_CLASSES_ROOT\CLSID", new subKey("InProcServer32", "") },
                { @"HKEY_CLASSES_ROOT\Wow6432Node\TypeLib", null },
                { @"HKEY_CLASSES_ROOT\TypeLib", null },
                { @"HKEY_CLASSES_ROOT\Wow6432Node\Interface", null },
                { @"HKEY_CLASSES_ROOT\Interface", null },
            };

            List <Thread> threads = new List <Thread>();

            foreach (KeyValuePair <string, subKey> kv in keys)
            {
                LoadRegHive lrh = new LoadRegHive(kv.Key, kv.Value);
                Thread      th  = new Thread(new ThreadStart(lrh.Load));
                th.Start();
                threads.Add(th);
            }

            return(threads);
        }