I have got a problem with WMI's Win32_LocalTime :
here is the msdn reference:
http://msdn.microsoft.com/library/en..._localtime.asp
I'D like to have a timer which pass me an event every thursday at 7 am.
I have got a method to produce a querystring to configure this timer
(according to msdn refernce). This method put querystring to an instance of
sysevents class as i described below:
void ProduceQuery()
{
SysEvents eventStart = new SysEvents();
StringBuilder sb = new StringBuilder ();
sb.Append("AND TargetInstance. DayOfWeek=4");
sb.Append(" ");
sb.Append("AND TargetInstance. Hour=7");
sb.Append(" ");
sb.Append("AND TargetInstance. Minute=0");
sb.Append(" ");
sb.Append("AND TargetInstance. Second=0");
eventStart.SetT imerStart (sb.ToString()) ;
eventStart.OnTi merElapsedStart +=new
SysEvents.Timer Handler(eventSt art_OnTimerElap sedStart);
}
private void eventStart_OnTi merElapsedStart (object sender,
EventArrivedEve ntArgs e)
{
//code goes here
}
Here is the code of SysEvents class:
public delegate void TimerHandler (object sender, EventArrivedEve ntArgs e);
public event TimerHandler OnTimerElapsedS tart;
public void SetTimerStart(s tring queryString)
{
ManagementEvent Watcher w = null;
ManagementOpera tionObserver observer = new
ManagementOpera tionObserver();
WqlEventQuery q = new WqlEventQuery ();
q.QueryString = "Select * from
__InstanceModif icationEvent Where
TargetInstance
ISA 'Win32_LocalTim e' "+queryStri ng ;
w=new ManagementEvent Watcher(q);
w.EventArrived +=new EventArrivedEve ntHandler(w_Eve ntArrived);
w.Start();
}
private void w_EventArrived( object sender, EventArrivedEve ntArgs e)
{
if(OnTimerElaps edStart != null) OnTimerElapsedS tart (sender,e);
}
And it doesn work - I havent got this event at thursday, 7am. If I put
querystring="" sysevents generates events every second ( as described in
msdn).
Does anybody know, why?
Thaks