Не выводит запись об изменения в реестре ( вывод в консоль ) По этой статье + примере на программе: RegistryMonitor
Сделал следующие разделы:
static List<string> RegScan = new List<string>()
{
@"HKEY_CLASSES_ROOT\exefile\shell\runas\command",
@"HKEY_CLASSES_ROOT\zapfile\shell\open\command",
@"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.exe",
@"HKEY_CLASSES_ROOT\.exe",
};
Далее по этой библиотеки RegistryUtils.dll
Сделал массив RegistryMonitor
private static RegistryMonitor[] registryMonitors;
public static void StopRegistryMonitor()
{
if (registryMonitors != null)
{
for (int i=0; i<registryMonitors.Length; i++)
{
registryMonitors[i].RegChanged -= OnRegistryChanged;
registryMonitors[i].Dispose();
}
registryMonitors = null;
Console.WriteLine("Monitoring stopped");
}
}
public static void StartRegistryMonitor()
{
if (registryMonitors != null) return;
registryMonitors = new RegistryMonitor[RegScan.Count];
for (int i = 0; i < RegScan.Count; i++)
{
Console.WriteLine("Monitoring \"" + RegScan[i] + "\" started");
registryMonitors[i] = new RegistryMonitor(RegScan[i]);
registryMonitors[i].RegChanged += OnRegistryChanged;
}
}
static void OnRegistryChanged(object sender, EventArgs args)
{
Console.WriteLine("registry key has changed");
}
Запускаю:
Thread s = new Thread(StartRegistryMonitor);
s.Start();
Но при добавление в реестре по нужным веткам(массива) ключа или раздела, не оповещает в консоли :(.
Всё верно, просто автор данной статьи написал:
RegistryMonitor has two public methods which are declared as follows:
public void Start();
public void Stop();
I don't think that these methods require much explanation. The former creates a separate thread, which will monitor the registry, and the latter will stop that thread.
Это означает что создать инстанс RegistryMonitor
и подписаться на событие ещё не означает что монитор будет запущен/работать. Соответственно вот так запускаем:
public static void StartRegistryMonitor()
{
if (registryMonitors != null) return;
registryMonitors = new RegistryMonitor[RegScan.Count];
for (int i = 0; i < RegScan.Count; i++)
{
Console.WriteLine("Monitoring \"" + RegScan[i] + "\" started");
registryMonitors[i] = new RegistryMonitor(RegScan[i]);
registryMonitors[i].RegChanged += OnRegistryChanged;
registryMonitors[i].Start(); // Старт мониторинга тут.
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Перед сохранением хотел сделать подтверждение, прописал data-confirm и теперь окно вызывается 2 раза перед отправкой формы
Пытаюсь объединить массивы в один, для обеднения взял функцию array_merge у меня получился массив:
Друзья здравствуйте! Вижу что данная тема еще не освещалась на русверсии данного ресурса в таком формате, по этому прошу подключиться к решению...
При установке Laravel я получаю "oops< something went wrong" и следтекст ошибки