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"; } }
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"; } }
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"; } }