private void ChangeHandler(object sender, RegistryChangeEventArgs e)
        {
            Logger.Trace("ChangeHandler called for {BasePath}", BasePath);
            var newAutostarts     = GetCurrentAutoStarts();
            var addedAutostarts   = new List <RegistryAutoStartEntry>();
            var removedAutostarts = new List <RegistryAutoStartEntry>();

            foreach (var newAutostart in newAutostarts)
            {
                var found = false;
                foreach (var lastAutostart in lastAutostarts)
                {
                    if (newAutostart.Equals(lastAutostart))
                    {
                        found = true;
                        break;
                    }
                }
                if (!found)
                {
                    addedAutostarts.Add((RegistryAutoStartEntry)newAutostart);
                }
            }
            foreach (var lastAutostart in lastAutostarts)
            {
                var found = false;
                foreach (var newAutostart in newAutostarts)
                {
                    if (newAutostart.Equals(lastAutostart))
                    {
                        found = true;
                        break;
                    }
                }
                if (!found)
                {
                    removedAutostarts.Add(lastAutostart);
                }
            }
            foreach (var addedAutostart in addedAutostarts)
            {
                Application.Current.Dispatcher.Invoke(delegate {
                    Add?.Invoke(addedAutostart);
                });
            }
            foreach (var removedAutostart in removedAutostarts)
            {
                Application.Current.Dispatcher.Invoke(delegate {
                    Remove?.Invoke(removedAutostart);
                });
            }
            lastAutostarts.Clear();
            foreach (var newAutoStartEntry in newAutostarts)
            {
                lastAutostarts.Add((RegistryAutoStartEntry)newAutoStartEntry);
            }
        }
 private void ErrorHandler(object sender, RegistryChangeEventArgs e)
 {
     Logger.Error("Error on monitoring of {BasePath}: {@Exception}", BasePath, e);
 }