ManagementEventWatcher 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
訂閱基於指定 事件查詢的臨時事件通知。
public ref class ManagementEventWatcher : System::ComponentModel::Component
public class ManagementEventWatcher : System.ComponentModel.Component
type ManagementEventWatcher = class
inherit Component
Public Class ManagementEventWatcher
Inherits Component
- 繼承
範例
以下範例說明當事件類別被__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 | (繼承來源 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 |
當訂閱被取消時會發生。 |