Я получаю эту ошибку:
Необработанное исключение: System.Runtime.InteropServices.COMException (0x80042001): Исключение из HRESULT: 0x80042001 в System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal (Int32trtr,errorInfo) в System.Management.ManagementEventWatcher.Start () в MyNamespace.Program.Main (String [] args) в {somedir} \ Program.cs: строка 16
А вот мое консольное приложение C #, которое я 'Я использую для просмотра реестра:
using System;
using System.Management;
namespace MyNamespace
{
class Program
{
static void Main(string[] args)
{
var watcher = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM RegistryTreeChangeEvent"));
var handler = new MyHandler();
watcher.EventArrived += handler.Arrived;
//Start watching for events
watcher.Start();
while (handler.EventHasntFiredYet)
{
// Nothing.
}
//Stop watching
watcher.Stop();
}
public class MyHandler
{
public bool EventHasntFiredYet;
public MyHandler()
{
EventHasntFiredYet = true;
}
public void Arrived(object sender, EventArrivedEventArgs e)
{
var propertyDataCollection = e.NewEvent.Properties;
foreach (var p in propertyDataCollection)
{
Console.WriteLine("{0} -- {1}",p.Name,p.Value);
}
EventHasntFiredYet = false;
}
}
}
}
Я пытаюсь просто посмотреть реестр на наличие изменений.У кого-нибудь есть предложения относительно того, почему это не удается?