Ich erstelle eine Anwendung, die verfolgen muss, wann ein Prozess beginnt, und dann ein Ereignis auslösen, wenn er beendet ist.
Ich habe einen Code, der auf einem englischen Rechner perfekt funktioniert und genau das tut, was ich brauche, aber wenn ich dieselbe Anwendung auf einem französischsprachigen Rechner ausführe, schlägt sie fehl.
Hier ist der Code, der fehlschlägt
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();
}
der Fehler tritt auf, wenn er versucht, die wstart.Start();
a wstop.Start();
Ich kann nur vermuten, dass es etwas mit der Sprache und dem Abfrage-String zu tun hat, aber ich klammere mich an Strohhalme.
Der Fehler, der angezeigt wird, lautet: "nicht analysierbare Nachfrage"
Für jede Hilfe sind wir Ihnen dankbar!
Martyn
Edit: Getestet auf 2 identischen Rechnern, einziger Unterschied ist die beim ersten Start gewählte Sprache.