Erstellen eines Timerereignisses mit Win32 _ LocalTime oder Win32 _ UTCTime
Sie können das Standardmodell von systeminternen Ereignissen und Ereignisfiltern in Kombination mit den Win32 _ LocalTime- oder Win32 _ UTCTime-Klassen verwenden, um eine zeitierte Benachrichtigung zu erhalten. Die systeminterne Methode ist eine empfohlene Methode zum Generieren von Zeitereignissen, da sie mit dem Rest des Microsoft-Ereignismodells konsistent ist und komplexe Planungsbedingungen unterstützt.
Die Klassen Win32 _ LocalTime und Win32 _ UTCTime sind Singletonklassen im \ Cimv2-Stammnamespace, die die Systemuhr darstellen. Bei der Abfrage gibt Win32 _ LocalTime die aktuelle Uhrzeit zum Zeitpunkt des Datenabrufs in einer 24-Stunden-Zeit mit lokalem Verweis zurück. Die Win32 _ UTCTime-Klasse gibt die aktuelle Zeit mit UTC-Verweis zurück.
So generieren Sie zeit- oder wiederholungsereignisse mit Win32 _ LocalTime oder Win32 _ UTCTime
- Richten Sie einen systeminternen Benachrichtigungsereignisfilter für Win32 _ LocalTime oder Win32 _ UTCTime ein, der eine Benachrichtigung für ein bestimmtes Datum und eine bestimmte Uhrzeit anfordert.
Beispiel: Die Ortszeit unter Sommerzeit ist 16:00 Uhr. und der Standort ist GMT -8, dann gibt Win32 _ LocalTime.Hour 16 und Win32 _ UTCTime.Hour 23 zurück.
Im folgenden Codebeispiel wird beschrieben, wie Sie einen Ereignisfilter erstellen, der jeden Tag um Mitternacht ein sich wiederholendes Ereignis signalisiert.
// 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";
};