Freigeben über


ManagementEventWatcher-Konstruktor (String, String, EventWatcherOptions)

Initialisiert eine neue Instanz der ManagementEventWatcher-Klasse, die Ereignisse überwacht, die mit der angegebenen WMI-Ereignisabfrage gemäß den angegebenen Optionen übereinstimmen. Bei dieser Variante werden die Abfrage und der Gültigkeitsbereich als Zeichenfolgen angegeben. Das Optionsobjekt kann Optionen angeben, z. B. Timeout- und Kontextinformationen.

Namespace: System.Management
Assembly: System.Management (in system.management.dll)

Syntax

'Declaration
Public Sub New ( _
    scope As String, _
    query As String, _
    options As EventWatcherOptions _
)
'Usage
Dim scope As String
Dim query As String
Dim options As EventWatcherOptions

Dim instance As New ManagementEventWatcher(scope, query, options)
public ManagementEventWatcher (
    string scope,
    string query,
    EventWatcherOptions options
)
public:
ManagementEventWatcher (
    String^ scope, 
    String^ query, 
    EventWatcherOptions^ options
)
public ManagementEventWatcher (
    String scope, 
    String query, 
    EventWatcherOptions options
)
public function ManagementEventWatcher (
    scope : String, 
    query : String, 
    options : EventWatcherOptions
)

Parameter

  • scope
    Der Gültigkeitsbereich der Verwaltung (Namespace), in dem der Monitor Ereignisse überwacht.
  • query
    Die Abfrage, die die Ereignisse definiert, die der Monitor überwacht.
  • options
    Eine Instanz der EventWatcherOptions-Klasse, die zusätzliche Optionen zum Überwachen von Ereignissen darstellt.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie der Client eine Benachrichtigung empfängt, wenn eine Instanz von Win32_Process erstellt wird, da die Ereignisklasse __InstanceCreationEvent ist. Weitere Informationen zur Windows-Verwaltungsinstrumentation finden Sie in der Dokumentation zur Windows-Verwaltungsinstrumentation in der MSDN Library unter https://msdn.microsoft.com/library/deu. Der Client empfängt Ereignisse synchron durch Aufrufen der WaitForNextEvent-Methode. Während der Beispielcode ausgeführt wird, kann dieses Beispiel durch Starten eines Prozesses wie Editor getestet werden.

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"""

        ' Event options
        ' blockSize = 1, so wait for 1 event to return
        Dim options As New EventWatcherOptions( _
            Nothing, TimeSpan.MaxValue, 1)


        ' Initialize an event watcher and subscribe to events 
        ' that match this query
        Dim watcher As New ManagementEventWatcher( _
            "root\CIMV2", _
            query, _
            options)

        ' 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\"";

        // Event options
        // blockSize = 1, so wait for 1 event to return
        EventWatcherOptions options = new EventWatcherOptions(
            null, TimeSpan.MaxValue, 1);

        // Initialize an event watcher and subscribe to events 
        // that match this query
        ManagementEventWatcher watcher =
            new ManagementEventWatcher(
            new ManagementScope("root\\CIMV2"),
            new EventQuery(query), options);
      
        // 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-Sicherheit

  • Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter .

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

ManagementEventWatcher-Klasse
ManagementEventWatcher-Member
System.Management-Namespace