Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: ipozorodri en 10 Junio 2014, 13:30 pm



Título: evento WMI
Publicado por: ipozorodri en 10 Junio 2014, 13:30 pm
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!!!!


Título: Re: evento WMI
Publicado por: El Benjo en 10 Junio 2014, 15:23 pm
el depurador no te va arrojar ningún error porque está dentro de un bloque "try".  :rolleyes:

Lo que te recomiendo es que insertes un punto de interrupción en la primera línea del bloque y lo recorras línea por línea para ver dónde hace algo raro.