我想在Windows应用程序中跟踪窗口解锁事件。如何完成?使用了什么事件?需要导入任何命名空间吗?
当用户解锁Windows时,应用程序需要执行一些任务。
我想在Windows应用程序中跟踪窗口解锁事件。如何完成?使用了什么事件?需要导入任何命名空间吗?
当用户解锁Windows时,应用程序需要执行一些任务。
如此StackOverflow回答中所述: https://dev59.com/g3VD5IYBdhLWcg3wO5AD#604042,您应该查看SystemEvents.SessionSwitch Event。
在提到的答案中还可以找到示例代码。
我刚刚尝试了提到的StackOverflow答案中显示的代码,并且似乎可以在带有.NET框架4.5的Windows 8 RTM上运行。
供参考,我包括了我刚刚组装的控制台应用程序的完整示例代码。
using System;
using Microsoft.Win32;
// Based on: https://dev59.com/g3VD5IYBdhLWcg3wO5AD#604042
namespace WinLockMonitor
{
class Program
{
static void Main(string[] args)
{
Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);
Console.ReadLine();
}
static void SystemEvents_SessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e)
{
if (e.Reason == SessionSwitchReason.SessionLock)
{
//I left my desk
Console.WriteLine("I left my desk");
}
else if (e.Reason == SessionSwitchReason.SessionUnlock)
{
//I returned to my desk
Console.WriteLine("I returned to my desk");
}
}
}
}
Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);
? - Anish V