Condividi tramite


ManagementEventWatcher Classe

Definizione

Sottoscrive le notifiche di evento temporanee in base a una query di eventi specificata.

public ref class ManagementEventWatcher : System::ComponentModel::Component
public class ManagementEventWatcher : System.ComponentModel.Component
type ManagementEventWatcher = class
    inherit Component
Public Class ManagementEventWatcher
Inherits Component
Ereditarietà
ManagementEventWatcher

Esempio

Nell'esempio seguente viene illustrato come il client riceve la notifica quando viene creata un'istanza di Win32_Process perché la classe di evento è __InstanceCreationEvent. Per altre informazioni, vedere la documentazione di Strumentazione gestione Windows . Il client riceve gli eventi in modo sincrono chiamando il metodo WaitForNextEvent. Questo esempio può essere testato avviando un processo, ad esempio Blocco note, mentre il codice di esempio è in esecuzione.

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
        WqlEventQuery query =
            new WqlEventQuery("__InstanceCreationEvent",
            new TimeSpan(0,0,1),
            "TargetInstance isa \"Win32_Process\"");

        // Initialize an event watcher and subscribe to events
        // that match this query
        ManagementEventWatcher watcher =
            new ManagementEventWatcher();
        watcher.Query = 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 WqlEventQuery( _
            "__InstanceCreationEvent", _
            New TimeSpan(0, 0, 1), _
            "TargetInstance isa ""Win32_Process""")

        ' Initialize an event watcher and subscribe to events 
        ' that match this query
        Dim watcher As New ManagementEventWatcher
        watcher.Query = query
        ' times 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.")
        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

Costruttori

ManagementEventWatcher()

Inizializza una nuova istanza della classe ManagementEventWatcher. Per un'inizializzazione ulteriore, impostare le proprietà sull'oggetto. Si tratta del costruttore senza parametri.

ManagementEventWatcher(EventQuery)

Inizializza una nuova istanza della classe ManagementEventWatcher quando viene specificata una query di eventi WMI.

ManagementEventWatcher(ManagementScope, EventQuery)

Inizializza una nuova istanza della classe ManagementEventWatcher che attende gli eventi in conformità alla query di eventi WMI data.

ManagementEventWatcher(ManagementScope, EventQuery, EventWatcherOptions)

Inizializza una nuova istanza della classe ManagementEventWatcher che attende gli eventi in conformità alla query di eventi WMI fornita, in base alle opzioni specificate. Per questa variante, la query e l'ambito sono oggetti specificati. L'oggetto di opzioni può specificare opzioni quali il timeout e le informazioni sul contesto.

ManagementEventWatcher(String)

Inizializza una nuova istanza della classe ManagementEventWatcher quando viene specificata una query di eventi WMI in formato stringa.

ManagementEventWatcher(String, String)

Inizializza una nuova istanza della classe ManagementEventWatcher che attende gli eventi in conformità alla query di eventi WMI data. Per questa variante, la query e l'ambito sono specificati in forma di stringhe.

ManagementEventWatcher(String, String, EventWatcherOptions)

Inizializza una nuova istanza della ManagementEventWatcher classe che ascolta gli eventi conformi alla query di evento WMI specificata, in base alle opzioni specificate. Per questa variante, la query e l'ambito sono specificati in forma di stringhe. L'oggetto di opzioni può specificare opzioni quali il timeout e le informazioni sul contesto.

Proprietà

CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.

(Ereditato da Component)
Container

Ottiene l'oggetto IContainer che contiene Component.

(Ereditato da Component)
DesignMode

Ottiene un valore che indica se il Component si trova in modalità progettazione.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi allegati a questo Component.

(Ereditato da Component)
Options

Ottiene o imposta le opzioni utilizzate per il controllo degli eventi.

Query

Ottiene o imposta il criterio da applicare agli eventi.

Scope

Ottiene o imposta l'ambito nel quale eseguire il controllo degli eventi, ossia lo spazio dei nomi o l'ambito.

Site

Ottiene o imposta l'oggetto ISite di Component.

(Ereditato da Component)

Metodi

CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Dispose()

Rilascia tutte le risorse usate da Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate da Component e, facoltativamente, le risorse gestite.

(Ereditato da Component)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Finalize()

Garantisce che le chiamate in sospeso vengano eliminate. Si tratta del distruttore dell'oggetto. In C#, i finalizzatori sono espressi utilizzando la sintassi dei distruttori.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container.

(Ereditato da Component)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
Start()

Sottoscrive eventi con la query fornita e li trasmette in modo asincrono tramite l'evento EventArrived.

Stop()

Annulla la sottoscrizione, sincrona o asincrona.

ToString()

Restituisce un oggetto String che contiene il nome dell'eventuale oggetto Component. Questo metodo non deve essere sottoposto a override.

(Ereditato da Component)
WaitForNextEvent()

Attende l'evento successivo che corrisponde alla query specificata in arrivo, quindi lo restituisce.

Eventi

Disposed

Si verifica quando il componente viene eliminato da una chiamata al metodo Dispose().

(Ereditato da Component)
EventArrived

Viene generato quando si presenta un nuovo evento.

Stopped

Viene generato quando viene annullata una sottoscrizione.

Si applica a