WMI-запрос в C # не работает на НЕанглийском компьютере

Я создаю приложение, которое должно отслеживать, когда процесс запускается, а затем вызывать событие, когда он завершается.

Я у меня есть код, который отлично работает и делает именно то, что мне нужно на машине с английским языком, но когда я запускаю то же приложение на машине с французским языком, оно терпит неудачу.

вот код, который терпит неудачу

qstart = new WqlEventQuery("__InstanceCreationEvent",
            new TimeSpan(0, 0, 0, 0, 5),
            "TargetInstance isa \"Win32_Process\"");

qstop = new WqlEventQuery("__InstanceDeletionEvent",
            new TimeSpan(0, 0, 0, 0, 5),
            "TargetInstance isa \"Win32_Process\"");
        try
        {
            using (wstart = new ManagementEventWatcher(qstart))
            {
                wstart.EventArrived += new EventArrivedEventHandler(ProcessStarted);
                Log.DebugEntry("BeginProcess() - Starting wstart Event");
                wstart.Start();
            }
        }
        catch (Exception ex)
        {
            Log.DebugEntry("error on wstart: " + ex.Message);
        }

        using (wstop = new ManagementEventWatcher(qstop))
        {
            wstop.EventArrived += new EventArrivedEventHandler(ProcessStopped);
            Log.DebugEntry("BeginProcess() - Starting wstop Event");
            wstop.Start();
        }

ошибка возникает при попытке запустите запрос: wstart.Start ();

и делает то же самое для wstop.Start ();

Я могу только догадываться, что это как-то связано с языком и строкой запроса, но я хватаюсь за соломинку.

При этом возникает ошибка: "demande non Analyysable"

Любая помощь с благодарностью получена!

Martyn

Edit: Протестировано на двух одинаковых машинах, единственная разница - язык, выбранный при первом запуске.

5
задан RRUZ 14 July 2011 в 04:37
поделиться