c# - tiempo - como bloquear la pc sin apagarla
¿Cómo detecto un comando Bloquear este equipo desde una aplicación WPF? (3)
Preferiría una respuesta en C #, .Net 3.5 usando WPF (Windows Forms también está bien)
Tengo una aplicación que es esencialmente una ventana de la barra de herramientas o un icono de bandeja. Necesita detectar si un usuario bloquea su estación de trabajo y se aleja para actualizar el estado de la persona en un sistema centralizado.
Puedo detectar un cambio de sesión o un cierre de sesión fácilmente, usando SystemEvents, pero por mi vida no puedo descubrir cómo detectar o recibir un evento en Lock.
Gracias por cualquier ayuda.
Aquí hay algo de CodeProject.
http://www.codeproject.com/KB/vb/DetectWindowslockunlock.aspx
Necesita p / invocar WTSRegisterSessionNotification. Código de muestra está here
Cuando maneja el evento Microsoft.Win32.SystemEvents.SessionSwitch
(que parece que ya está haciendo para detectar el cierre de sesión), verifique si el Reason
es SessionSwitchReason
.SessionLock
:
using Microsoft.Win32;
// ...
// Somewhere in your startup, add your event handler:
SystemEvents.SessionSwitch +=
new SessionSwitchEventHandler(SystemEvents_SessionSwitch);
// ...
void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
switch(e.Reason)
{
// ...
case SessionSwitchReason.SessionLock:
// Do whatever you need to do for a lock
// ...
break;
case SessionSwitchReason.SessionUnlock:
// Do whatever you need to do for an unlock
// ...
break;
// ...
}
}