Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Costruttore ManagementEventWatcher (ManagementScope, EventQuery)

 

Data di pubblicazione: novembre 2016

Inizializza una nuova istanza di ManagementEventWatcher classe che attende gli eventi in conformità a WMI fornita query di eventi.

Spazio dei nomi:   System.Management
Assembly:  System.Management (in System.Management.dll)

public ManagementEventWatcher(
	ManagementScope scope,
	EventQuery query
)

Parametri

scope
Type: System.Management.ManagementScope

Oggetto ManagementScope che rappresenta l'ambito (spazio dei nomi) in cui il controllo attenderà gli eventi.

query
Type: System.Management.EventQuery

Un EventQuery che rappresenta una query di eventi WMI, che determina gli eventi per il quale saranno attesi.

Attendibilità totale per il chiamante immediato. Impossibile usare questo membro in codice parzialmente attendibile. Per altre informazioni, vedere Using Libraries from Partially Trusted Code.

Nell'esempio di codice, il client riceve una notifica quando un'istanza di Win32_Process viene creato perché è la classe di evento InstanceCreationEvent. Per ulteriori informazioni, vedere la documentazione di Strumentazione gestione Windows in MSDN Library http://msdn.microsoft.com/library. 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
        string query = 
            "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(
            new ManagementScope("root\\CIMV2"),
            new EventQuery(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;
    }
}

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: