ManagementEventWatcher Classe

Definição

Subscreve notificações temporárias de eventos baseadas numa consulta de evento especificada.

public ref class ManagementEventWatcher : System::ComponentModel::Component
public class ManagementEventWatcher : System.ComponentModel.Component
type ManagementEventWatcher = class
    inherit Component
Public Class ManagementEventWatcher
Inherits Component
Herança
ManagementEventWatcher

Exemplos

O exemplo seguinte mostra como o cliente recebe notificação quando uma instância de Win32_Process é criada porque a classe de evento é __InstanceCreationEvent. Para mais informações, consulte a documentação Windows Instrumentação de Gestão. O cliente recebe eventos de forma síncrona ao chamar o WaitForNextEvent método. Este exemplo pode ser testado iniciando um processo, como o Notepad, enquanto o código de exemplo está a correr.

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

Construtores

Name Description
ManagementEventWatcher()

Inicializa uma nova instância da ManagementEventWatcher classe. Para uma inicialização adicional, defina as propriedades no objeto. Este é o construtor sem parâmetros.

ManagementEventWatcher(EventQuery)

Inicializa uma nova instância da ManagementEventWatcher classe quando recebe uma consulta de evento WMI.

ManagementEventWatcher(ManagementScope, EventQuery, EventWatcherOptions)

Inicializa uma nova instância da ManagementEventWatcher classe que escuta eventos conformes à consulta de evento WMI dada, de acordo com as opções especificadas. Para esta variante, a consulta e o âmbito são objetos especificados. O objeto options pode especificar opções como time-out e informação de contexto.

ManagementEventWatcher(ManagementScope, EventQuery)

Inicializa uma nova instância da ManagementEventWatcher classe que escuta eventos que cumprem a consulta de eventos WMI dada.

ManagementEventWatcher(String, String, EventWatcherOptions)

Inicializa uma nova instância da ManagementEventWatcher classe que escuta eventos conformes à consulta de evento WMI dada, de acordo com as opções especificadas. Para esta variante, a consulta e o âmbito são especificados como strings. O objeto options pode especificar opções como um time-out e informação de contexto.

ManagementEventWatcher(String, String)

Inicializa uma nova instância da ManagementEventWatcher classe que escuta eventos que cumprem a consulta de eventos WMI dada. Para esta variante, a consulta e o âmbito são especificados como strings.

ManagementEventWatcher(String)

Inicializa uma nova instância da ManagementEventWatcher classe quando recebe uma consulta de evento WMI sob a forma de uma string.

Propriedades

Name Description
CanRaiseEvents

Obtém um valor que indica se o componente pode gerar um evento.

(Herdado de Component)
Container

Obtém o IContainer que contém o Component.

(Herdado de Component)
DesignMode

Obtém um valor que indica se o Component está atualmente em modo de design.

(Herdado de Component)
Events

Obtém a lista de gestores de eventos que estão ligados a isto Component.

(Herdado de Component)
Options

Obtém ou define as opções usadas para observar eventos.

Query

Obtém ou define os critérios para se candidatar a eventos.

Scope

Obtém ou define o âmbito para observar eventos (namespace ou scope).

Site

Obtém ou define o ISite do Component.

(Herdado de Component)

Métodos

Name Description
CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Liberta todos os recursos utilizados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Liberta os recursos não geridos usados pelo Component e opcionalmente liberta os recursos geridos.

(Herdado de Component)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Garante que as chamadas pendentes são resolvidas. Este é o destruidor do objeto. Em C#, os finalizadores são expressos usando a sintaxe dos destruidores.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetService(Type)

Devolve um objeto que representa um serviço fornecido pelo Component ou pelo seu Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
Start()

Subscreve eventos com a consulta dada e entrega-os, de forma assíncrona, através do EventArrived evento.

Stop()

Cancela a subscrição, seja ela síncrona ou assíncrona.

ToString()

Devolve a String contendo o nome do Component, se existir. Este método não deve ser ultrapassado.

(Herdado de Component)
WaitForNextEvent()

Espera que chegue o próximo evento que corresponde à consulta especificada e depois devolve-o.

evento

Name Description
Disposed

Ocorre quando o componente é eliminado por uma chamada ao Dispose() método.

(Herdado de Component)
EventArrived

Ocorre quando surge um novo evento.

Stopped

Ocorre quando uma subscrição é cancelada.

Aplica-se a