Hola a tod@s,
os cuento mi problema, tengo una aplicación en c# que hasta ahora ha estado corriendo correctamente bajo windows XP. Ahora se han migrado los equipos a windows 7 y hemos detectado un problema con un evento WMI que no se ejecuta.
En la aplicación hay un evento hecho con WMI que salta cada ver que se utiliza la impresora de tarjetas. Esta evento lo que hace es recoger cada impresion que se hace y aumentar un contador en un fichero, y cuando llega a un nº determinado de impresiones lanza una alerta.
try
{
string machine = Environment.MachineName;
string path = String.Format("\\\\{0}\\root\\CIMV2", machine);
// Declaration
_PrinterWatcher = new ManagementEventWatcher();
_PrinterWatcher.Scope = new ManagementScope(path);
// you can play around with the WITHIN interval but it costs performance if using faster intervals
string oQuery = "SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA \"Win32_PrintJob\"";
_PrinterWatcher.Query = new EventQuery(oQuery);
_PrinterWatcher.EventArrived += new System.Management.EventArrivedEventHandler(_PrinterWatcher_EventArrived);
_PrinterWatcher.Stopped += new System.Management.StoppedEventHandler(_PrinterWatcher_Stopped);
_PrinterWatcher.Start();
}catch (Exception ex){
CGVSANMessage.ShowErrorMsg(this, ex.Message);
}
este es el código que ha estado funcionando bajo windows xp, pero ahora para windows 7 no funciona, tampoco reporta ningún error pero no aumente ese contador.
Alguien me puede orientar?¿?¿ Gracias de antemano!!!!
os cuento mi problema, tengo una aplicación en c# que hasta ahora ha estado corriendo correctamente bajo windows XP. Ahora se han migrado los equipos a windows 7 y hemos detectado un problema con un evento WMI que no se ejecuta.
En la aplicación hay un evento hecho con WMI que salta cada ver que se utiliza la impresora de tarjetas. Esta evento lo que hace es recoger cada impresion que se hace y aumentar un contador en un fichero, y cuando llega a un nº determinado de impresiones lanza una alerta.
try
{
string machine = Environment.MachineName;
string path = String.Format("\\\\{0}\\root\\CIMV2", machine);
// Declaration
_PrinterWatcher = new ManagementEventWatcher();
_PrinterWatcher.Scope = new ManagementScope(path);
// you can play around with the WITHIN interval but it costs performance if using faster intervals
string oQuery = "SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA \"Win32_PrintJob\"";
_PrinterWatcher.Query = new EventQuery(oQuery);
_PrinterWatcher.EventArrived += new System.Management.EventArrivedEventHandler(_PrinterWatcher_EventArrived);
_PrinterWatcher.Stopped += new System.Management.StoppedEventHandler(_PrinterWatcher_Stopped);
_PrinterWatcher.Start();
}catch (Exception ex){
CGVSANMessage.ShowErrorMsg(this, ex.Message);
}
este es el código que ha estado funcionando bajo windows xp, pero ahora para windows 7 no funciona, tampoco reporta ningún error pero no aumente ese contador.
Alguien me puede orientar?¿?¿ Gracias de antemano!!!!