我正在创建一个需要跟踪进程何时启动的应用程序,然后在它完成时引发一个事件。
我的代码可以完美运行,并且完全符合我在英语机器上的需要,但是当我在法语机器上运行相同的应用程序时它会失败。
这是失败的代码
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(); 做同样的事情
我只能猜测它与语言和查询字符串有关,但我正在抓住稻草。
它提出的错误是: “要求不可分析”
任何帮助将不胜感激!
马丁
编辑:在 2 台相同的机器上测试,唯一的区别是第一次启动时选择的语言。