語言

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 管理儀器文件。 用戶端透過呼叫 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

建構函式

名稱 Description
ManagementEventWatcher()

初始化 ManagementEventWatcher 類別的新執行個體。 為了進一步初始化,請在物件上設定屬性。 這就是無參數建構子。

ManagementEventWatcher(EventQuery)

當收到 WMI ManagementEventWatcher時,會初始化該類別的新實例。

ManagementEventWatcher(ManagementScope, EventQuery, EventWatcherOptions)

初始化一個新的類別實例 ManagementEventWatcher ,根據指定的選項監聽符合指定 WMI 事件查詢的事件。 此變體中,查詢與作用域為指定的物件。 選項物件可以指定如逾時和上下文資訊等選項。

ManagementEventWatcher(ManagementScope, EventQuery)

初始化一個新的類別實例 ManagementEventWatcher ,監聽符合指定 WMI 事件查詢的事件。

ManagementEventWatcher(String, String, EventWatcherOptions)

初始化一個新的類別實例 ManagementEventWatcher ,根據指定的選項監聽符合指定 WMI 事件查詢的事件。 此變體中,查詢與作用域以字串形式指定。 選項物件可以指定如逾時和上下文資訊等選項。

ManagementEventWatcher(String, String)

初始化一個新的類別實例 ManagementEventWatcher ,監聽符合指定 WMI 事件查詢的事件。 此變體中,查詢與作用域以字串形式指定。

ManagementEventWatcher(String)

當給定以字串形式進行 WMI ManagementEventWatcher時,初始化該類別的新實例。

屬性

名稱 Description
CanRaiseEvents

取得值,指出元件是否可以引發事件。

(繼承來源 Component)
Container

取得包含 IContainer的 Component。

(繼承來源 Component)
DesignMode

取得值,這個值表示 Component 目前是否處於設計模式。

(繼承來源 Component)
Events

取得附加至這個 Component之事件處理程序的清單。

(繼承來源 Component)
Options

取得或設定用來觀察事件的選項。

Query

取得或設定申請活動的標準。

Scope

取得或設定要監控事件的範圍(命名空間或範圍)。

Site

取得或設定 ISite 的 Component。

(繼承來源 Component)

方法

名稱 Description
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()

等待下一個符合指定查詢的事件到達,然後回傳該事件。

事件

名稱 Description
Disposed

當呼叫 Dispose() 方法時,就會發生元件。

(繼承來源 Component)
EventArrived

當新事件發生時發生。

Stopped

當訂閱被取消時會發生。

適用於