desarrolloMobile.NET Noticias

lunes, octubre 25, 2004

Utilizar SystemEvents para operar con los eventos del sistema operativo.

Cómo utilizar los eventos del sistema operativo desde nuestras propias aplicaciones para poder controlar el estado de la batería en un portátil, o la petición de cierre de sesión o de sistema, es mucho más fácil ahora desde Visual Studio .NET.
Código.
Dentro del espacio de nombre Microsoft.Win32 encontramos una clase de tipo abstracta (no heredable) que proporciona una serie de eventos que a su vez obtiene del propio sistema operativo. Así eventos como:

- Cambio de la configuración de la pantalla (Evento DisplaySettingsChanged)
- La finalización del proceso que escucha los eventos del sistema (Evento EventThreadShutdown)
- Instalación o desinstalación de nuevas fuentes en el sistema (Evento InstalledFontsChanged)
- Avisos de baja memoria disponible (Evento LowMemory)
- Cambio del usuario a una aplicación con una paleta diferente (Evento PaletteChanged)
- En la petición de suspender o reiniciar el sistema (Evento PowerModeChanged)
- En el cierre de sesión o de sistema (Evento SessionEnded)
- Durante el proceso de petición de cierre de sesión o de sistema (Evento SessionEnding)
- En el cambio del reloj del sistema (Evento TimerChanged)
- En el transcurso de un temporizador de Windows (Evento TimerElapsed)
- Cambio de las preferencias y configuraciones de un usuario (Evento UserPreferencesChanged)
- Durante el transcurso de petición de cambio de las preferencias y configuraciones de un usuario (Evento UserPreferencesChanging)

son de fácil implantación en nuestra aplicación, ya que sólo debemos crear dichos eventos de la forma que normalmente hacemos.

Dicha clase, SystemEvents, nos proporcionará una serie de controles a nuestras aplicaciones de los que algunos ejemplos de eventos vemos a continuación.

using System;

namespace MySystemEvents
{
public class ControlEventos
{
public ControlEventos()
{
// controlamos el evento de cambio configuración pantalla
Microsoft.Win32.SystemEvents.DisplaySettingsChanged +=
new EventHandler(SystemEvents_DisplaySettingsChanged);
// controlamos el evento de memoria baja
Microsoft.Win32.SystemEvents.LowMemory +=
new EventHandler(SystemEvents_LowMemory);
// controlamos el evento de petición de cierre de sesión
// o de sistema

Microsoft.Win32.SystemEvents.SessionEnding +=
new Microsoft.Win32.SessionEndingEventHandler(SystemEvents_SessionEnding);
// controlamos el evento de cambio de configuración de preferencias de usuario
// realizada

Microsoft.Win32.SystemEvents.UserPreferenceChanged +=
new Microsoft.Win32.UserPreferenceChangedEventHandler(SystemEvents_UserPreferenceChanged);
}

// se ejecutará cuando el evento DisplaySettingsChanged

private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{
// código

}

// se ejecutará cuando el evento LowMemory
private void SystemEvents_LowMemory(object sender, EventArgs e)
{
// código
}

// se ejecutará cuando el evento SessionEnding
private void SystemEvents_SessionEnding(object sender, Microsoft.Win32.SessionEndingEventArgs e)
{
// código
}

// se ejecutará cuando el evento UserPreferenceChanged
private void SystemEvents_UserPreferenceChanged(object sender, Microsoft.Win32.UserPreferenceChangedEventArgs e)
{
// código
}
}
}

1 comentario:

Wilmer Matamoros dijo...

Esta muy interesante la clase.
Pero me gustaria saber como acceder al estado de la bateria, o mas especifico me gustaria saber que evento se genera cuando se desconecta la corriente de una portatil.

Muchas gracias