Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }