Exemplo n.º 1
0
        public void ProcessValues(RegistryKey key)
        {
            _values.Clear();
            Errors.Clear();

            foreach (var keyValue in key.Values)
            {
                try
                {
                    var unrot = Helpers.Rot13Transform(keyValue.ValueName);
                    var run   = 0;

                    string guid = null;
                    try
                    {
                        guid =
                            Regex.Match(unrot, @"\b[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-F0-9]{12}\b",
                                        RegexOptions.IgnoreCase).Value;

                        var foldername = Utils.GetFolderNameFromGuid(guid);

                        unrot = unrot.Replace(guid, foldername);
                    }
                    catch (ArgumentException)
                    {
                        // Syntax error in the regular expression
                    }


                    DateTimeOffset?lastRun = null;

                    if (keyValue.ValueDataRaw.Length >= 16)
                    {
                        run = BitConverter.ToInt32(keyValue.ValueDataRaw, 4);

                        lastRun = DateTimeOffset.FromFileTime(BitConverter.ToInt64(keyValue.ValueDataRaw, 8));

                        if (keyValue.ValueDataRaw.Length >= 68)
                        {
                            lastRun = DateTimeOffset.FromFileTime(BitConverter.ToInt64(keyValue.ValueDataRaw, 60));
                        }
                    }

                    if (lastRun?.Year < 1970)
                    {
                        lastRun = null;
                    }

                    var vo = new ValuesOut(keyValue.ValueName, unrot, run, lastRun);

                    _values.Add(vo);
                }
                catch (Exception ex)
                {
                    Errors.Add($"Value name: {keyValue.ValueName}, message: {ex.Message}");
                }
            }
        }
Exemplo n.º 2
0
        public void ProcessValues(RegistryKey key)
        {
            _values.Clear();
            Errors.Clear();

            foreach (var keyValue in key.Values)
            {
                try
                {
                    var unrot = Helpers.Rot13Transform(keyValue.ValueName);
                    var run   = 0;

                    string guid = null;
                    try
                    {
                        guid =
                            Regex.Match(unrot, @"\b[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-F0-9]{12}\b",
                                        RegexOptions.IgnoreCase).Value;

                        var foldername = Utils.GetFolderNameFromGuid(guid);

                        unrot = unrot.Replace(guid, foldername);
                    }
                    catch (ArgumentException)
                    {
                        // Syntax error in the regular expression
                    }


                    DateTimeOffset?lastRun    = null;
                    int?           focusCount = null;
                    TimeSpan       focusTime  = new TimeSpan();

                    if (keyValue.ValueDataRaw.Length >= 16)
                    {
                        run = BitConverter.ToInt32(keyValue.ValueDataRaw, 4);

                        lastRun = DateTimeOffset.FromFileTime(BitConverter.ToInt64(keyValue.ValueDataRaw, 8));

                        // Windows 7 and up, new format
                        if (keyValue.ValueDataRaw.Length >= 68)
                        {
                            focusCount = BitConverter.ToInt32(keyValue.ValueDataRaw, 8);
                            focusTime  = TimeSpan.FromMilliseconds(BitConverter.ToInt32(keyValue.ValueDataRaw, 12));
                            lastRun    = DateTimeOffset.FromFileTime(BitConverter.ToInt64(keyValue.ValueDataRaw, 60));
                        }
                    }

                    if (lastRun?.Year < 1970)
                    {
                        lastRun = null;
                    }

                    var vo = new ValuesOut(keyValue.ValueName, unrot, run, lastRun, focusCount, focusTime.ToString(@"d'd, 'h'h, 'mm'm, 'ss's'"));
                    vo.BatchKeyPath   = key.KeyPath;
                    vo.BatchValueName = keyValue.ValueName;

                    _values.Add(vo);
                }
                catch (Exception ex)
                {
                    Errors.Add($"Value name: {keyValue.ValueName}, message: {ex.Message}");
                }
            }
        }
Exemplo n.º 3
0
        public void ProcessValues(RegistryKey key)
        {
            _values.Clear();
            Errors.Clear();

            foreach (var keyValue in key.Values)
            {
                try
                {
                    var unrot = Helpers.Rot13Transform(keyValue.ValueName);
                    var run = 0;

                    string guid = null;
                    try
                    {
                        guid =
                            Regex.Match(unrot, @"\b[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-F0-9]{12}\b",
                                RegexOptions.IgnoreCase).Value;

                        var foldername = Utils.GetFolderNameFromGuid(guid);

                        unrot = unrot.Replace(guid, foldername);
                    }
                    catch (ArgumentException ex)
                    {
                        // Syntax error in the regular expression
                    }

                    DateTimeOffset? lastRun = null;

                    if (keyValue.ValueDataRaw.Length >= 16)
                    {
                        run = BitConverter.ToInt32(keyValue.ValueDataRaw, 4);

                        lastRun = DateTimeOffset.FromFileTime(BitConverter.ToInt64(keyValue.ValueDataRaw, 8));

                        if (keyValue.ValueDataRaw.Length >= 68)
                        {
                            lastRun = DateTimeOffset.FromFileTime(BitConverter.ToInt64(keyValue.ValueDataRaw, 60));
                        }
                    }

                    if (lastRun?.Year < 1970)
                    {
                        lastRun = null;
                    }

                    var vo = new ValuesOut(keyValue.ValueName, unrot, run, lastRun);

                    _values.Add(vo);
                }
                catch (Exception ex)
                {
                    Errors.Add($"Value name: {keyValue.ValueName}, message: {ex.Message}");
                }
            }
        }