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

示例

以下示例演示由于事件类__InstanceCreationEvent而创建 Win32_Process 实例时客户端如何接收通知。 有关详细信息,请参阅 Windows Management Instrumentation 文档。 客户端通过调用 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)

在给定一个 WMI 事件查询的情况下,初始化 ManagementEventWatcher 类的新实例

ManagementEventWatcher(ManagementScope, EventQuery)

初始化 ManagementEventWatcher 类的新实例,它可侦听符合给定 WMI 事件查询的事件

ManagementEventWatcher(ManagementScope, EventQuery, EventWatcherOptions)

初始化 ManagementEventWatcher 类的一个新实例,它将根据指定选项侦听符合给定 WMI 事件查询的事件。 对于此变体,查询和范围为指定的对象。 选项对象可指定超时和上下文信息等选项。

ManagementEventWatcher(String)

在给定一个字符串形式的 WMI 事件查询的情况下,初始化 ManagementEventWatcher 类的新实例

ManagementEventWatcher(String, String)

初始化 ManagementEventWatcher 类的新实例,它可侦听符合给定 WMI 事件查询的事件。 对于此变体,查询和范围被指定为字符串。

ManagementEventWatcher(String, String, EventWatcherOptions)

根据指定的选项,初始化 类的新实例 ManagementEventWatcher ,该类侦听符合给定 WMI 事件查询的事件。 对于此变体,查询和范围被指定为字符串。 选项对象可指定超时和上下文信息之类的选项。

属性

CanRaiseEvents

获取一个指示组件是否可以引发事件的值。

(继承自 Component)
Container

获取包含 IContainerComponent

(继承自 Component)
DesignMode

获取一个值,用以指示 Component 当前是否处于设计模式。

(继承自 Component)
Events

获取附加到此 Component 的事件处理程序的列表。

(继承自 Component)
Options

获取或设置用于监视事件的选项。

Query

获取或设置要应用于事件的条件。

Scope

获取或设置要在其中监视事件的范围(命名空间或范围)。

Site

获取或设置 ComponentISite

(继承自 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()

返回包含 Component 的名称的 String(如果有)。 不应重写此方法。

(继承自 Component)
WaitForNextEvent()

等待出现下一个与指定的查询匹配的事件,然后将该事件返回。

事件

Disposed

在通过调用 Dispose() 方法释放组件时发生。

(继承自 Component)
EventArrived

出现新事件时发生。

Stopped

取消预订时发生。

适用于