Поделиться через


ManagementEventWatcher Класс

Определение

Осуществляет подписку на временные уведомления о событиях в соответствии с заданным запросом событий.

public ref class ManagementEventWatcher : System::ComponentModel::Component
public class ManagementEventWatcher : System.ComponentModel.Component
type ManagementEventWatcher = class
    inherit Component
Public Class ManagementEventWatcher
Inherits Component
Наследование
ManagementEventWatcher

Примеры

В следующем примере показано, как клиент получает уведомление при создании экземпляра Win32_Process , так как класс событий __InstanceCreationEvent. Дополнительные сведения см. в документации по инструментарию управления Windows . Клиент получает события синхронно, вызывая метод WaitForNextEvent. Чтобы протестировать этот пример, можно во время выполнения кода запустить какой-нибудь процесс, такой как приложение Блокнот.

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

Конструкторы

ManagementEventWatcher()

Инициализирует новый экземпляр класса ManagementEventWatcher. Для дальнейшей инициализации следует задать свойства объекта. Это конструктор без параметров.

ManagementEventWatcher(EventQuery)

Инициализирует новый экземпляр класса ManagementEventWatcher при наличии запроса WMI-события.

ManagementEventWatcher(ManagementScope, EventQuery)

Инициализирует новый экземпляр ManagementEventWatcher, который прослушивает события, удовлетворяющие данному запросу WMI-событий.

ManagementEventWatcher(ManagementScope, EventQuery, EventWatcherOptions)

Выполняет инициализацию нового экземпляра класса ManagementEventWatcher, который прослушивает события, удовлетворяющие данному запросу WMI-событий в соответствии с заданными параметрами. Для этого варианта запрос и область представляют собой настраиваемые объекты. Параметрический объект может задавать такие параметры, как время ожидания и контекст.

ManagementEventWatcher(String)

Инициализирует новый экземпляр класса ManagementEventWatcher, если данный запрос WMI-событий представлен в виде строки.

ManagementEventWatcher(String, String)

Инициализирует новый экземпляр ManagementEventWatcher, который прослушивает события, удовлетворяющие данному запросу WMI-событий. Для этого варианта запрос и область задаются в виде строк.

ManagementEventWatcher(String, String, EventWatcherOptions)

Инициализирует новый экземпляр ManagementEventWatcher класса , который прослушивает события, соответствующие заданному запросу событий WMI, в соответствии с указанными параметрами. Для этого варианта запрос и область задаются в виде строк. Параметрический объект может задавать такие параметры, как время ожидания и контекст.

Свойства

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие.

(Унаследовано от Component)
Container

Возвращает объект IContainer, который содержит коллекцию Component.

(Унаследовано от Component)
DesignMode

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.

(Унаследовано от Component)
Events

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

(Унаследовано от Component)
Options

Получает или задает параметры отслеживания событий.

Query

Получает или задает критерии, которым должны отвечать события.

Scope

Получает или задает область (или пространство имен), в которой необходимо отслеживать события.

Site

Получает или задает ISite объекта Component.

(Унаследовано от Component)

Методы

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, занятые модулем Component.

(Унаследовано от Component)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.

(Унаследовано от Component)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

Обеспечивает очистку всех незавершенных вызовов. Это деструктор объекта. В C# для выражения методов завершения используется синтаксис деструктора.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetService(Type)

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.

(Унаследовано от Component)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
Start()

Осуществляет подписку на события, удовлетворяющие данному запросу, и доставляет их в асинхронном режиме с помощью события EventArrived.

Stop()

Отменяет подписку, независимо от того, является ли она синхронной или асинхронной.

ToString()

Возвращает объект String, содержащий имя Component, если оно есть. Этот метод не следует переопределять.

(Унаследовано от Component)
WaitForNextEvent()

Ожидает следующего события, которое удовлетворяет заданному запросу, а затем возвращает это событие.

События

Disposed

Возникает при удалении компонента путем вызова метода Dispose().

(Унаследовано от Component)
EventArrived

Происходит, когда возникает новое событие.

Stopped

Происходит, когда отменяется подписка.

Применяется к