Partager via


EventQuery Classe

Définition

Représente une requête d’événement WMI.

public ref class EventQuery : System::Management::ManagementQuery
public class EventQuery : System.Management.ManagementQuery
type EventQuery = class
    inherit ManagementQuery
Public Class EventQuery
Inherits ManagementQuery
Héritage
EventQuery
Dérivé

Exemples

L’exemple suivant montre comment le client reçoit une notification lorsqu’un instance de Win32_Process est créé parce que la classe d’événements est __InstanceCreationEvent. Pour plus d’informations, consultez la documentation Windows Management Instrumentation . Le client reçoit les événements de façon synchrone en appelant la méthode WaitForNextEvent. Cet exemple peut être testé par le démarrage d'un processus, comme le Bloc-notes, alors que l'exemple de code est en cours d'exécution.

using System;
using System.Management;

// This example shows synchronous consumption of events.
// The client is blocked while waiting for events.

public class EventWatcherPolling
{
    public static int Main(string[] args)
    {
        // Create event query to be notified within 1 second of
        // a change in a service
        EventQuery query = new EventQuery();
        query.QueryString = "SELECT * FROM" +
            " __InstanceCreationEvent WITHIN 1 " +
            "WHERE TargetInstance isa \"Win32_Process\"";

        // Initialize an event watcher and subscribe to events
        // that match this query
        ManagementEventWatcher watcher =
            new ManagementEventWatcher(query);
        // times out watcher.WaitForNextEvent in 5 seconds
        watcher.Options.Timeout = new TimeSpan(0,0,5);

        // Block until the next event occurs
        // Note: this can be done in a loop if waiting for
        //        more than one occurrence
        Console.WriteLine(
            "Open an application (notepad.exe) to trigger an event.");
        ManagementBaseObject e = watcher.WaitForNextEvent();

        //Display information from the event
        Console.WriteLine(
            "Process {0} has been created, path is: {1}",
            ((ManagementBaseObject)e
            ["TargetInstance"])["Name"],
            ((ManagementBaseObject)e
            ["TargetInstance"])["ExecutablePath"]);

        //Cancel the subscription
        watcher.Stop();
        return 0;
    }
}
Imports System.Management

' This example shows synchronous consumption of events. 
' The client is blocked while waiting for events. 

Public Class EventWatcherPolling
    Public Overloads Shared Function _
        Main(ByVal args() As String) As Integer

        ' Create event query to be notified within 1 second of 
        ' a change in a service
        Dim query As New EventQuery
        query.QueryString = "SELECT * FROM" & _
            " __InstanceCreationEvent WITHIN 1 " & _
            "WHERE TargetInstance isa ""Win32_Process"""

        ' Initialize an event watcher and subscribe to events 
        ' that match this query
        Dim watcher As New ManagementEventWatcher(query)
        ' times watcher.WaitForNextEvent in 5 seconds
        watcher.Options.Timeout = New TimeSpan(0, 0, 50)

        ' Block until the next event occurs 
        ' Note: this can be done in a loop
        ' if waiting for more than one occurrence
        Console.WriteLine( _
          "Open an application (notepad.exe) to trigger an event.")
        Dim e As ManagementBaseObject = _
            watcher.WaitForNextEvent()

        'Display information from the event
        Console.WriteLine( _
            "Process {0} has created, path is: {1}", _
            CType(e("TargetInstance"), _
                ManagementBaseObject)("Name"), _
            CType(e("TargetInstance"), _
                ManagementBaseObject)("ExecutablePath"))

        'Cancel the subscription
        watcher.Stop()
        Return 0

    End Function 'Main
End Class

Constructeurs

EventQuery()

Initialise une nouvelle instance de la classe EventQuery. Il s’agit du constructeur sans paramètre.

EventQuery(String)

Initialise une nouvelle instance de la classe EventQuery pour la requête spécifiée.

EventQuery(String, String)

Initialise une nouvelle instance de la classe EventQuery pour le langage et la requête spécifiés.

Propriétés

QueryLanguage

Obtient ou définit le langage de requête utilisé dans la chaîne de requête, en définissant le format de la chaîne de requête.

(Hérité de ManagementQuery)
QueryString

Obtient ou définit la requête au format de texte.

(Hérité de ManagementQuery)

Méthodes

Clone()

Retourne une copie de l'objet.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ParseQuery(String)

Analyse la chaîne de requête et définit les valeurs des propriétés en conséquence. Si la requête est valide, la propriété du nom de classe et la propriété de condition de la requête sont analysées.

(Hérité de ManagementQuery)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à