Поделиться через


Создание события таймера с помощью Win32_LocalTime или Win32_UTCTime

Стандартную модель встроенных событий и фильтров событий можно использовать в сочетании с классами Win32_LocalTime или Win32_UTCTime для получения уведомления по времени. Внутренний метод — это рекомендуемый способ генерации событий с временными метками, поскольку он согласован с остальной частью модели событий Microsoft и поддерживает сложные условия планирования.

Классы Win32_LocalTime и Win32_UTCTime — это однотонные классы в пространстве имен root\cimv2, представляющего системные часы. При запросе Win32_LocalTime возвращает текущее время в момент получения данных в 24-часовом часовом режиме с локальной ссылкой. Класс Win32_UTCTime возвращает текущее время со ссылкой в формате UTC.

Создание временных или повторяющихся событий с помощью Win32_LocalTime или Win32_UTCTime

  • Настройте встроенный фильтр событий уведомлений для Win32_LocalTime или Win32_UTCTime, которые запрашивают уведомление для определенной даты и времени.

Например, если локальное время в летнем времени составляет 4 вечера, а расположение — GMT -8, то Win32_LocalTime.Час возвращает 16 и Win32_UTCTime.Час возвращает 23.

В следующем примере кода описывается, как создать фильтр событий, который сигнализирует повторяющееся событие каждый день в полночь.

// 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";
};