Sistemas

Páginas: 7 (1624 palabras) Publicado: 8 de enero de 2013
* para determinar el tiempo en el que se encuentran activos los equipos en una planta de producción.
* Se trata de equipos de sobremesa normales.
Tras investigar un poco, he visto con con System.win32.SystemEvents.SessionSwitch me vale perfectamente.
Este evento se lanza al bloquear el equipo y al desbloquerle.

la respuesta depende de si usted quiere saber si el escritorio está bloqueadoahora, o si desea recibir una notificación cuando el escritorio se bloquea (y, presumiblemente, desbloqueado,). También depende de cómo usted está planeando para recibir dichas notificaciones.

• Si realmente quieres una prueba de una sola vez, entonces la respuesta aquí utiliza OpenDesktop () y SwitchDesktop () para abrir un identificador para el escritorio por defecto y que se active - siesto no funciona, entonces es una buena señal de que el escritorio está bloqueado en este momento.

• Si usted desea recibir notificación sobre bloqueo / desbloqueo, y tiene una aplicación en modo de usuario con una ventana y un suministro de mensajes, entonces usted necesita llamar WTSRegisterSessionNotification () y coger el mensaje WM_WTSSESSION_CHANGE.

• Si desea que las notificaciones, y loestá ejecutando como un servicio de Windows, entonces usted puede inscribirse en los eventos de cambio de sesión llamando SetServiceStatus () y añadiendo SERVICE_ACCEPT_SESSIONCHANGE a dwControlsAccepted en la estructura de su estado. A continuación, recibirá devoluciones de llamada a su propio servicio de control de HandlerEx () con dwControl establecido en SERVICE_CONTROL_SESSIONCHANGE.

C# –Recibir notificaciones cuando hayan cambios de sesión parte 1
June 2nd, 2011 by JuanK
Follow @JuanKRuiz
Artículos de este tema:
* C# – Recibir notificaciones cuando hayan cambios de sesión parte 1
* C# – Recibir notificaciones cuando hayan cambios de sesión parte 2 – Windows Forms
* C# – Recibir notificaciones cuando hayan cambios de sesión parte 3 – WPF
*Realmente son 6articulos si contamos los mini post a los que se hace referencia
A veces necesitamos que nuestro software audite ciertos eventos generados por el equipo, como por ejemplo cuando se abren o cierran sesiones. Esto es importante por ejemplo para disparar procesos pesados cuando el computador no este en uso o para realizar procesos de auditoria.
Como es de suponerse el .Net Framework no trae nada que nosapoye en esa tarea ya que esta profundamente relacionada con el sistema operativo y ya que el CLR es multiplataforma este tipo de cosas no vienen soportadas. Se debe hacer uso de la Api de Windows.
 
En este artículo crearé una librería sencilla que permite ser notificado cuando suceden estos eventos bien sea en la sesión actual o a través de las diferentes sesiones iniciadas en el sistema.
 NUESTRO KIT DE HERRAMIENTAS
Las cosas que necesitamos de la Api de Windows para realizar esta labor se describen a continuación
 Funciones
* WTSRegisterSessionNotification : Registra una ventana para recibir mensajes de cambios en la sesión
* WTSUnRegisterSessionNotification : Elimina el registro de una ventana para que deje de recibir mensajes de cambios en la sesión
Constantes parallamar a WTSRegisterSessionNotification
* NOTIFY_FOR_THIS_SESSION : Notifica eventos de la sesión actual
* NOTIFY_FOR_ALL_SESSIONS : Notifica eventos de todas las sesiones del sistema
Constantes relacionadas con las notificaciones
* WM_WTSSESSION_CHANGE : Mensaje generado cuando suceden los eventos de cambios en la sesión
* Parámetros:
* WTS_CONSOLE_CONNECT: Una sesión se haconectado por terminal de consola.
* WTS_CONSOLE_DISCONNECT: Una sesión se ha desconectado por terminal de consola.
* WTS_REMOTE_CONNECT: Una sesión se ha conectado por una terminal remota.
* WTS_REMOTE_DISCONNECT: Una sesión de terminal remota se ha desconectado.
* WTS_SESSION_LOGON: Un usuario se ha logueado en la sesión.
* WTS_SESSION_LOGOFF: Un usuario se...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Sistemas
  • Sistemas
  • Sistema
  • Sistemas
  • Sistemas
  • Sistemas
  • Sistemas
  • El sistema

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS