Criando um evento de temporizador com Win32_LocalTime ou Win32_UTCTime

Você pode usar o modelo padrão de eventos intrínsecos e filtros de eventos em combinação com as classes Win32_LocalTime ou Win32_UTCTime para receber uma notificação cronometrada. O método intrínseco é uma maneira recomendada de gerar eventos cronometrados, pois é consistente com o resto do modelo de eventos da Microsoft e suporta condições de agendamento complexas.

As classes Win32_LocalTime e Win32_UTCTime são classes singleton no namespace root\cimv2 que representam o relógio do sistema. Quando consultado, Win32_LocalTime retorna a hora atual no momento da recuperação de dados em um relógio de 24 horas com referência local. A classe Win32_UTCTime retorna a hora atual com referência UTC.

Para gerar eventos cronometrados ou repetidos com Win32_LocalTime ou Win32_UTCTime

  • Configure um filtro de evento de notificação intrínseco para Win32_LocalTime ou Win32_UTCTime que solicite notificação para uma data e hora específicas.

Por exemplo, se a hora local em Horário de Verão for 16:00 e o local for GMT -8, Win32_LocalTime.Hour retornará 16 e Win32_UTCTime.Hour retornará 23.

O exemplo de código a seguir descreve como criar um filtro de evento que sinaliza um evento repetido todos os dias à meia-noite.

// Win32_LocalTime and Win32_UTCTime reside in root\cimv2 namespace. 
// Defining the EventNamespace allows the filter
// to be compiled in any namespace.
instance of __EventFilter as $FILT1
{
 Name  = "wake-up call";
 Query = "SELECT * FROM __InstanceModificationEvent WHERE "    
 "TargetInstance ISA \"Win32_LocalTime\" AND "
 "TargetInstance.Hour = 0 AND TargetInstance.Minute = 0 AND "
 "TargetInstance.Second = 0";
 QueryLanguage = "WQL";
 EventNamespace = "root\\cimv2";
};