Мониторинг ветки реестра - C#
Формулировка задачи:
Есть ветка HKEY_LOCAL_MACHINE\SOFTWARE\Task_Queue\Parameters\Task_Execution_Duration
Что нужно написать, чтоб програма после запуска и до своего закрытия следила за етой веткой и как только там появлялся новый параметр что-то предпринимала. Если параметр сринговый с именем TASK_XXXX и содержит хххх (где х = 0-9), то писала в журнал "параметр TASK_XXXX " принят. А если нет, то "TASK_XXXX отклонен". Собственно, как вытащить значение из параметра я знаю, и как записать в журнал. А вот как следить за веткой и вытаскивать имена НОВЫХ параметров, что появились после запуска, да и как проверить правильность названия- вот с етим беда.
Решение задачи: «Мониторинг ветки реестра»
textual
Листинг программы
using Microsoft.Win32; using System.Text.RegularExpressions; ... List<string> values = new List<string>(); RegistryKey lmKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE", false); RegistryKey rkey = lmKey.OpenSubKey(@"Task_Queue\Parameters\Task_Execution_Duration", false); ... Regex regEx = new Regex("TASK_[0-9]+$"); foreach (string val in rkey.GetValueNames()) { if (rkey.GetValueKind(val) == RegistryValueKind.String) { Match match = regEx.Match(val); if (match.Success) { if (!values.Contains(val)) { values.Add(val); MessageBox.Show("Added"); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д