Пример #1
0
        public void ProcessValues(RegistryKey key)
        {
            _values.Clear();
            Errors.Clear();

            var appcompatValue = key.Values.Single(t => t.ValueName == ValueName);

            var ctl = key.KeyPath.Split('\\').SingleOrDefault(t => t.Contains("ControlSet"));

            var num = -1;

            if (ctl != null)
            {
                num = ctl.ToCharArray().Last();
            }


            try
            {
                var cache = new acc(appcompatValue.ValueDataRaw, num);

                foreach (var c in cache.Caches)
                {
                    foreach (var cacheEntry in c.Entries)
                    {
                        try
                        {
                            var vo = new ValuesOut(cacheEntry.CacheEntryPosition, cacheEntry.Path,
                                                   cacheEntry.LastModifiedTimeUTC);

                            _values.Add(vo);
                        }
                        catch (Exception ex)
                        {
                            Errors.Add($"Value name: {cacheEntry.CacheEntryPosition}, message: {ex.Message}");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Errors.Add($"Error processing AppCompatCache: {ex.Message}");
            }

            if (Errors.Count > 0)
            {
                AlertMessage = "Errors detected. See Errors information in lower right corner of plugin window";
            }
        }
Пример #2
0
        public void ProcessValues(RegistryKey key)
        {
            _values.Clear();
            Errors.Clear();

            var appcompatValue = key.Values.Single(t => t.ValueName == ValueName);

            var ctl = key.KeyPath.Split('\\').SingleOrDefault(t => t.Contains("ControlSet"));

            var num = -1;

            if (ctl != null)
            {
                num = ctl.ToCharArray().Last();
            }

            var env = key.Parent.SubKeys.Single(t => t.KeyName == "Environment");

            var val = env?.Values.SingleOrDefault(c => c.ValueName == "PROCESSOR_ARCHITECTURE");


            var is32bit = false;

            if (val != null)
            {
                is32bit = val.ValueData.Equals("x86");
            }


            try
            {
                var cache = new acc(appcompatValue.ValueDataRaw, num, is32bit);

                foreach (var c in cache.Caches)
                {
                    foreach (var cacheEntry in c.Entries)
                    {
                        try
                        {
                            var vo = new ValuesOut(cacheEntry.CacheEntryPosition, cacheEntry.Path,
                                                   cacheEntry.LastModifiedTimeUTC);

                            vo.BatchKeyPath   = key.KeyPath;
                            vo.BatchValueName = ValueName;

                            _values.Add(vo);
                        }
                        catch (Exception ex)
                        {
                            Errors.Add($"Value name: {cacheEntry.CacheEntryPosition}, message: {ex.Message}");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Errors.Add($"Error processing AppCompatCache: {ex.Message}");
            }

            if (Errors.Count > 0)
            {
                AlertMessage = "Errors detected. See Errors information in lower right corner of plugin window";
            }
        }
Пример #3
0
        public void ProcessValues(RegistryKey key)
        {
            _values.Clear();
            Errors.Clear();

            var appcompatValue = key.Values.Single(t => t.ValueName == ValueName);

            var ctl = key.KeyPath.Split('\\').SingleOrDefault(t => t.Contains("ControlSet"));

            var num = -1;

            if (ctl != null)
            {
                num = ctl.ToCharArray().Last();
            }

            try
            {
                var cache = new acc(appcompatValue.ValueDataRaw, num);

                foreach (var c in cache.Caches)
                {
                    foreach (var cacheEntry in c.Entries)
                    {
                        try
                        {
                            var vo = new ValuesOut(cacheEntry.CacheEntryPosition, cacheEntry.Path,
                                cacheEntry.LastModifiedTimeUTC);

                            _values.Add(vo);
                        }
                        catch (Exception ex)
                        {
                            Errors.Add($"Value name: {cacheEntry.CacheEntryPosition}, message: {ex.Message}");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Errors.Add($"Error processing AppCompatCache: {ex.Message}");
            }

            if (Errors.Count > 0)
            {
                AlertMessage = "Errors detected. See Errors information in lower right corner of plugin window";
            }
        }