WMI (Windows Management Instrumentation) イベント クエリが指定されたときに、ManagementEventWatcher クラスの新しいインスタンスを初期化します。
名前空間: System.Management
アセンブリ: System.Management (system.management.dll 内)
構文
'宣言
Public Sub New ( _
query As EventQuery _
)
'使用
Dim query As EventQuery
Dim instance As New ManagementEventWatcher(query)
public ManagementEventWatcher (
EventQuery query
)
public:
ManagementEventWatcher (
EventQuery^ query
)
public ManagementEventWatcher (
EventQuery query
)
public function ManagementEventWatcher (
query : EventQuery
)
パラメータ
- query
ウォッチャーが待機するイベントを決定する WMI イベント クエリを表す EventQuery。
解説
ウォッチャーがイベントを待機する名前空間は、現在設定されている既定の名前空間です。
.NET Framework のセキュリティ
直前の呼び出し元に対する完全な信頼。このメンバは、信頼性が一部しか確認されていないコードでは使用できません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。
使用例
このコード例では、イベント クラスが __InstanceCreationEvent であるため、Win32_Process のインスタンスが作成されたときにクライアントが通知を受信します。詳細については、MSDN ライブラリ (https://msdn.microsoft.com/library/ja) で Windows Management Instrumentation に関するドキュメントを参照してください。クライアントは WaitForNextEvent メソッドを呼び出して、イベントを同期的に受信します。この例は、コード例の実行中にメモ帳などのプロセスを開始することでテストできます。
Imports System
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 String
query = "SELECT * FROM __InstanceCreationEvent " _
& "WITHIN 1 WHERE " & _
"TargetInstance isa ""Win32_Process"""
' Initialize an event watcher and subscribe to events
' that match this query
Dim watcher As New ManagementEventWatcher(New EventQuery( _
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 'EventWatcherPolling
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
string query =
"SELECT * FROM __InstanceCreationEvent "
+ "WITHIN 1 WHERE " +
"TargetInstance isa \"Win32_Process\"";
// Initialize an event watcher and subscribe to events
// that match this query
ManagementEventWatcher watcher =
new ManagementEventWatcher(new EventQuery(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;
}
}
.NET Framework のセキュリティ
- 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「」を参照してください。
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
参照
関連項目
ManagementEventWatcher クラス
ManagementEventWatcher メンバ
System.Management 名前空間