Я создаю приложение, которое должно отслеживать, когда процесс запускается, а затем вызывать событие, когда он завершается.
Я у меня есть код, который отлично работает и делает именно то, что мне нужно на машине с английским языком, но когда я запускаю то же приложение на машине с французским языком, оно терпит неудачу.
вот код, который терпит неудачу
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: Протестировано на двух одинаковых машинах, единственная разница - язык, выбранный при первом запуске.