Мониторинг ветки реестра - 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");
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5