Esporta (0) Stampa
Espandi tutto

Classe SystemEvents

Fornisce l'accesso alle notifiche degli eventi di sistema. Questa classe non può essere ereditata.

Spazio dei nomi: Microsoft.Win32
Assembly: System (in system.dll)

public sealed class SystemEvents
public final class SystemEvents
public final class SystemEvents

La classe SystemEvents consente di rispondere a tipi specifici di eventi di sistema.

Quando viene generato un evento di sistema, vengono chiamati tutti i delegati collegati all'evento utilizzando il thread che esegue il monitoraggio degli eventi di sistema. È pertanto necessario che tutte le chiamate dai gestori eventi siano thread-safe. Per chiamare un evento di sistema non esposto come membro di questa classe, è possibile utilizzare il metodo InvokeOnEventsThread.

Nota di avvisoAttenzione

È consigliabile non eseguire operazioni che richiedono tempi lunghi di elaborazione sul thread che genera il gestore di un evento di sistema, perché potrebbero impedire il funzionamento di altre applicazioni.

NotaNota

L'attributo HostProtectionAttribute applicato a questa classe presenta il seguente valore della proprietà Resources: MayLeakOnAbort. L'attributo HostProtectionAttribute non influisce sulle applicazioni desktop (che in genere vengono avviate facendo doppio clic su un'icona, digitando un comando o immettendo un URL in un browser). Per ulteriori informazioni, vedere la classe HostProtectionAttribute o Programmazione per SQL Server e attributi di protezione host.

Nell'esempio riportato di seguito il codice registra l'interesse ad alcuni eventi di sistema e rimane in attesa che si verifichino. L'output illustrato viene visualizzato se l'utente modifica la risoluzione dello schermo.

using System;
using Microsoft.Win32;

public sealed class App 
{
    static void Main() 
    {         
        // Set the SystemEvents class to receive event notification when a user 
        // preference changes, the palette changes, or when display settings change.
        SystemEvents.UserPreferenceChanging += new 
            UserPreferenceChangingEventHandler(SystemEvents_UserPreferenceChanging);
        SystemEvents.PaletteChanged += new 
            EventHandler(SystemEvents_PaletteChanged);
        SystemEvents.DisplaySettingsChanged += new 
            EventHandler(SystemEvents_DisplaySettingsChanged);        

        // For demonstration purposes, this application sits idle waiting for events.
        Console.WriteLine("This application is waiting for system events.");
        Console.WriteLine("Press <Enter> to terminate this application.");
        Console.ReadLine();
    }

    // This method is called when a user preference changes.
    static void SystemEvents_UserPreferenceChanging(object sender, UserPreferenceChangingEventArgs e) 
    {
        Console.WriteLine("The user preference is changing. Category={0}", e.Category);
    }

    // This method is called when the palette changes.
    static void SystemEvents_PaletteChanged(object sender, EventArgs e)
    {
        Console.WriteLine("The palette changed.");
    }

    // This method is called when the display settings change.
    static void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
    {
        Console.WriteLine("The display settings changed.");
    }
}

// This code produces the following output.
// 
//  This app is waiting for system events.
//  Press <Enter> to terminate this application.
//  Display Settings changed.
//  User preference is changing. Category=General

System.Object
  Microsoft.Win32.SystemEvents

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

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 non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft