ManagementEventWatcher Konstruktorer

Definition

Initierar en ny instans av ManagementEventWatcher klassen.

Överlagringar

Name Description
ManagementEventWatcher()

Initierar en ny instans av ManagementEventWatcher klassen. För ytterligare initiering anger du egenskaperna för objektet. Det här är den parameterlösa konstruktorn.

ManagementEventWatcher(EventQuery)

Initierar en ny instans av ManagementEventWatcher klassen när en WMI-händelsefråga ges.

ManagementEventWatcher(String)

Initierar en ny instans av ManagementEventWatcher klassen när en WMI-händelsefråga ges i form av en sträng.

ManagementEventWatcher(ManagementScope, EventQuery)

Initierar en ny instans av ManagementEventWatcher klassen som lyssnar efter händelser som överensstämmer med den angivna WMI-händelsefrågan.

ManagementEventWatcher(String, String)

Initierar en ny instans av ManagementEventWatcher klassen som lyssnar efter händelser som överensstämmer med den angivna WMI-händelsefrågan. För den här varianten anges frågan och omfånget som strängar.

ManagementEventWatcher(ManagementScope, EventQuery, EventWatcherOptions)

Initierar en ny instans av ManagementEventWatcher klassen som lyssnar efter händelser som överensstämmer med den angivna WMI-händelsefrågan enligt de angivna alternativen. För den här varianten är frågan och omfånget angivna objekt. Alternativobjektet kan ange alternativ som timeout och kontextinformation.

ManagementEventWatcher(String, String, EventWatcherOptions)

Initierar en ny instans av ManagementEventWatcher klassen som lyssnar efter händelser som överensstämmer med den angivna WMI-händelsefrågan enligt de angivna alternativen. För den här varianten anges frågan och omfånget som strängar. Alternativobjektet kan ange alternativ, till exempel timeout och kontextinformation.

ManagementEventWatcher()

Initierar en ny instans av ManagementEventWatcher klassen. För ytterligare initiering anger du egenskaperna för objektet. Det här är den parameterlösa konstruktorn.

public:
 ManagementEventWatcher();
public ManagementEventWatcher();
Public Sub New ()

Exempel

I följande exempel visas hur klienten får ett meddelande när en instans av Win32_Process skapas eftersom händelseklassen är __InstanceCreationEvent. Mer information finns i dokumentationen Windows Management Instrumentation. Klienten tar emot händelser synkront genom att anropa WaitForNextEvent metoden. Det här exemplet kan testas genom att starta en process, till exempel Anteckningar, medan exempelkoden körs.

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

Kommentarer

.NET Framework-säkerhet

Fullständigt förtroende för den omedelbara uppringaren. Den här medlemmen kan inte användas av delvis betrodd kod. Mer information finns i Använda bibliotek från delvis betrodd kod.

Gäller för

ManagementEventWatcher(EventQuery)

Initierar en ny instans av ManagementEventWatcher klassen när en WMI-händelsefråga ges.

public:
 ManagementEventWatcher(System::Management::EventQuery ^ query);
public ManagementEventWatcher(System.Management.EventQuery query);
new System.Management.ManagementEventWatcher : System.Management.EventQuery -> System.Management.ManagementEventWatcher
Public Sub New (query As EventQuery)

Parametrar

query
EventQuery

En EventQuery som representerar en WMI-händelsefråga som avgör vilka händelser som bevakaren ska lyssna på.

Exempel

I det här kodexemplet får klienten ett meddelande när en instans av Win32_Process skapas eftersom händelseklassen är __InstanceCreationEvent. Mer information finns i dokumentationen Windows Management Instrumentation. Klienten tar emot händelser synkront genom att anropa WaitForNextEvent metoden. Det här exemplet kan testas genom att starta en process, till exempel Anteckningar, medan exempelkoden körs.

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;
    }
}
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

Kommentarer

Namnområdet där bevakaren lyssnar efter händelser är det standardnamnområde som för närvarande har angetts.

.NET Framework-säkerhet

Fullständigt förtroende för den omedelbara uppringaren. Den här medlemmen kan inte användas av delvis betrodd kod. Mer information finns i Använda bibliotek från delvis betrodd kod.

Gäller för

ManagementEventWatcher(String)

Initierar en ny instans av ManagementEventWatcher klassen när en WMI-händelsefråga ges i form av en sträng.

public:
 ManagementEventWatcher(System::String ^ query);
public ManagementEventWatcher(string query);
new System.Management.ManagementEventWatcher : string -> System.Management.ManagementEventWatcher
Public Sub New (query As String)

Parametrar

query
String

En WMI-händelsefråga som definierar de händelser som bevakaren ska lyssna efter.

Exempel

I följande exempel visas hur klienten får ett meddelande när en instans av Win32_Process skapas eftersom händelseklassen är __InstanceCreationEvent. Mer information finns i dokumentationen Windows Management Instrumentation. Klienten tar emot händelser synkront genom att anropa WaitForNextEvent metoden. Det här exemplet kan testas genom att starta en process, till exempel Anteckningar, medan exempelkoden körs.

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

Kommentarer

Namnområdet där bevakaren lyssnar efter händelser är det standardnamnområde som för närvarande har angetts.

.NET Framework-säkerhet

Fullständigt förtroende för den omedelbara uppringaren. Den här medlemmen kan inte användas av delvis betrodd kod. Mer information finns i Använda bibliotek från delvis betrodd kod.

Gäller för

ManagementEventWatcher(ManagementScope, EventQuery)

Initierar en ny instans av ManagementEventWatcher klassen som lyssnar efter händelser som överensstämmer med den angivna WMI-händelsefrågan.

public:
 ManagementEventWatcher(System::Management::ManagementScope ^ scope, System::Management::EventQuery ^ query);
public ManagementEventWatcher(System.Management.ManagementScope scope, System.Management.EventQuery query);
new System.Management.ManagementEventWatcher : System.Management.ManagementScope * System.Management.EventQuery -> System.Management.ManagementEventWatcher
Public Sub New (scope As ManagementScope, query As EventQuery)

Parametrar

scope
ManagementScope

En ManagementScope som representerar omfånget (namnområdet) där bevakaren lyssnar efter händelser.

query
EventQuery

En EventQuery som representerar en WMI-händelsefråga som avgör vilka händelser som bevakaren ska lyssna på.

Exempel

I det här kodexemplet får klienten ett meddelande när en instans av Win32_Process skapas eftersom händelseklassen är __InstanceCreationEvent. Mer information finns i dokumentationen Windows Management Instrumentation. Klienten tar emot händelser synkront genom att anropa WaitForNextEvent metoden. Det här exemplet kan testas genom att starta en process, till exempel Anteckningar, medan exempelkoden körs.

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 ManagementScope("root\\CIMV2"),
            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;
    }
}
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 ManagementScope("root\CIMV2"), _
            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

Kommentarer

.NET Framework-säkerhet

Fullständigt förtroende för den omedelbara uppringaren. Den här medlemmen kan inte användas av delvis betrodd kod. Mer information finns i Använda bibliotek från delvis betrodd kod.

Gäller för

ManagementEventWatcher(String, String)

Initierar en ny instans av ManagementEventWatcher klassen som lyssnar efter händelser som överensstämmer med den angivna WMI-händelsefrågan. För den här varianten anges frågan och omfånget som strängar.

public:
 ManagementEventWatcher(System::String ^ scope, System::String ^ query);
public ManagementEventWatcher(string scope, string query);
new System.Management.ManagementEventWatcher : string * string -> System.Management.ManagementEventWatcher
Public Sub New (scope As String, query As String)

Parametrar

scope
String

Hanteringsomfånget (namnområde) där bevakaren lyssnar efter händelser.

query
String

Frågan som definierar de händelser som bevakaren ska lyssna efter.

Exempel

I följande exempel visas hur klienten får ett meddelande när en instans av Win32_Process skapas eftersom händelseklassen är __InstanceCreationEvent. Mer information finns i dokumentationen Windows Management Instrumentation. Klienten tar emot händelser synkront genom att anropa WaitForNextEvent metoden. Det här exemplet kan testas genom att starta en process, till exempel Anteckningar, medan exempelkoden körs.

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("root\\CIMV2",
            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 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( _
            "root\CIMV2", 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

Kommentarer

.NET Framework-säkerhet

Fullständigt förtroende för den omedelbara uppringaren. Den här medlemmen kan inte användas av delvis betrodd kod. Mer information finns i Använda bibliotek från delvis betrodd kod.

Gäller för

ManagementEventWatcher(ManagementScope, EventQuery, EventWatcherOptions)

Initierar en ny instans av ManagementEventWatcher klassen som lyssnar efter händelser som överensstämmer med den angivna WMI-händelsefrågan enligt de angivna alternativen. För den här varianten är frågan och omfånget angivna objekt. Alternativobjektet kan ange alternativ som timeout och kontextinformation.

public:
 ManagementEventWatcher(System::Management::ManagementScope ^ scope, System::Management::EventQuery ^ query, System::Management::EventWatcherOptions ^ options);
public ManagementEventWatcher(System.Management.ManagementScope scope, System.Management.EventQuery query, System.Management.EventWatcherOptions options);
new System.Management.ManagementEventWatcher : System.Management.ManagementScope * System.Management.EventQuery * System.Management.EventWatcherOptions -> System.Management.ManagementEventWatcher
Public Sub New (scope As ManagementScope, query As EventQuery, options As EventWatcherOptions)

Parametrar

scope
ManagementScope

En ManagementScope som representerar omfånget (namnområdet) där bevakaren lyssnar efter händelser.

query
EventQuery

En EventQuery som representerar en WMI-händelsefråga som avgör vilka händelser som bevakaren ska lyssna på.

options
EventWatcherOptions

Ett EventWatcherOptions som representerar ytterligare alternativ som används för att titta efter händelser.

Exempel

I följande exempel visas hur klienten får ett meddelande när en instans av Win32_Process skapas eftersom händelseklassen är __InstanceCreationEvent. Mer information finns i dokumentationen Windows Management Instrumentation. Klienten tar emot händelser synkront genom att anropa WaitForNextEvent metoden. Det här exemplet kan testas genom att starta en process, till exempel Anteckningar, medan exempelkoden körs.

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;
    }
}
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( _
            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.")
        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

Kommentarer

.NET Framework-säkerhet

Fullständigt förtroende för den omedelbara uppringaren. Den här medlemmen kan inte användas av delvis betrodd kod. Mer information finns i Använda bibliotek från delvis betrodd kod.

Gäller för

ManagementEventWatcher(String, String, EventWatcherOptions)

Initierar en ny instans av ManagementEventWatcher klassen som lyssnar efter händelser som överensstämmer med den angivna WMI-händelsefrågan enligt de angivna alternativen. För den här varianten anges frågan och omfånget som strängar. Alternativobjektet kan ange alternativ, till exempel timeout och kontextinformation.

public:
 ManagementEventWatcher(System::String ^ scope, System::String ^ query, System::Management::EventWatcherOptions ^ options);
public ManagementEventWatcher(string scope, string query, System.Management.EventWatcherOptions options);
new System.Management.ManagementEventWatcher : string * string * System.Management.EventWatcherOptions -> System.Management.ManagementEventWatcher
Public Sub New (scope As String, query As String, options As EventWatcherOptions)

Parametrar

scope
String

Hanteringsomfånget (namnområde) där bevakaren lyssnar efter händelser.

query
String

Frågan som definierar de händelser som bevakaren ska lyssna efter.

options
EventWatcherOptions

Ett EventWatcherOptions som representerar ytterligare alternativ som används för att titta efter händelser.

Exempel

I följande exempel visas hur klienten får ett meddelande när en instans av Win32_Process skapas eftersom händelseklassen är __InstanceCreationEvent. Mer information finns i dokumentationen Windows Management Instrumentation. Klienten tar emot händelser synkront genom att anropa WaitForNextEvent metoden. Det här exemplet kan testas genom att starta en process, till exempel Anteckningar, medan exempelkoden körs.

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;
    }
}
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

Kommentarer

.NET Framework-säkerhet

Fullständigt förtroende för den omedelbara uppringaren. Den här medlemmen kan inte användas av delvis betrodd kod. Mer information finns i Använda bibliotek från delvis betrodd kod.

Gäller för