protected override void OnStart(string[] args) { foreach (RegistryItem item in Properties.Settings.Default.ItemsToEnforce) { RegistryWatcher watcher = new RegistryWatcher(Registry.LocalMachine, item.KeyPath, item.ValueName); watcher.RegistryValueChangeEvent += Watcher_EventArrived; Watchers.Add(watcher); } }
private void Watcher_EventArrived(object sender, RegistryValueChangeEventArgs e) { RegistryWatcher watcher = sender as RegistryWatcher; Console.WriteLine($"{watcher.ValueName} changed to {e.Value}"); RegistryItem item = Properties.Settings.Default.ItemsToEnforce.SingleOrDefault(i => i.KeyPath == watcher.KeyPath && i.ValueName == watcher.ValueName); if (item != null) { Console.WriteLine($"{watcher.ValueName} changed to {e.Value}"); watcher.Value = item.OverrideValue; } }