public void ProcessValues(RegistryKey key) { _values.Clear(); Errors.Clear(); var valuesList = new List <ValuesOut>(); var currentKey = string.Empty; try { currentKey = key.KeyName; //get MRU key and read it in var mruVal = key.Values.SingleOrDefault(t => t.ValueName == "MRUList"); var mruListOrder = new ArrayList(); if (mruVal != null) { foreach (var c in mruVal.ValueData.ToCharArray()) { mruListOrder.Add(c.ToString()); } } foreach (var keyValue in key.Values) { if (keyValue.ValueName == "MRUList") { continue; } var mru = mruListOrder.IndexOf(keyValue.ValueName); DateTimeOffset?openedOn = null; if (mru == 0) { openedOn = key.LastWriteTime; } var vd = keyValue.ValueData; if (vd.EndsWith(@"\1")) { vd = keyValue.ValueData.Substring(0, keyValue.ValueData.Length - 2); } var v = new ValuesOut(keyValue.ValueName, vd, mru, openedOn); valuesList.Add(v); } } catch (Exception ex) { Errors.Add($"Error processing RunMRU subkey {currentKey}: {ex.Message}"); } if (Errors.Count > 0) { AlertMessage = "Errors detected. See Errors information in lower right corner of plugin window"; } var v1 = valuesList.OrderBy(t => t.MruPosition); foreach (var source in v1.ToList()) { _values.Add(source); } }
public void ProcessValues(RegistryKey key) { _values.Clear(); Errors.Clear(); var valuesList = new List<ValuesOut>(); var currentKey = string.Empty; try { currentKey = key.KeyName; //get MRU key and read it in var mruVal = key.Values.SingleOrDefault(t => t.ValueName == "MRUList"); var mruListOrder = new ArrayList(); if (mruVal != null) { foreach (var c in mruVal.ValueData.ToCharArray()) { mruListOrder.Add(c.ToString()); } } foreach (var keyValue in key.Values) { if (keyValue.ValueName == "MRUList") { continue; } var mru = mruListOrder.IndexOf(keyValue.ValueName); DateTimeOffset? openedOn = null; if (mru == 0) { openedOn = key.LastWriteTime; } var vd = keyValue.ValueData; if (vd.EndsWith(@"\1")) { vd = keyValue.ValueData.Substring(0, keyValue.ValueData.Length - 2); } var v = new ValuesOut(keyValue.ValueName, vd, mru, openedOn); valuesList.Add(v); } } catch (Exception ex) { Errors.Add($"Error processing RunMRU subkey {currentKey}: {ex.Message}"); } if (Errors.Count > 0) { AlertMessage = "Errors detected. See Errors information in lower right corner of plugin window"; } var v1 = valuesList.OrderBy(t => t.MruPosition); foreach (var source in v1.ToList()) { _values.Add(source); } }