如何获得Windows解锁事件在C#窗口应用程序?

我想跟踪Windows应用程序中的Windows解锁事件。 它是如何完成的? 这个事件是用来做什么的? 我需要为此导入任何名称空间吗?

当用户解锁窗口时,应用程序需要执行一些任务。

正如在这个StackOverflow中发布的答案: https : //stackoverflow.com/a/604042/700926你应该看看SystemEvents.SessionSwitch事件 。

示例代码也可以在引用的答案中找到。

我只是把所引用的StackOverflow答案中显示的代码旋转,似乎可以在.NET Framework 4.5的Windows 8 RTM上运行。

为了供您参考,我已经包含了我刚刚组装的控制台应用程序的完整示例代码。

using System; using Microsoft.Win32; // Based on: https://stackoverflow.com/a/604042/700926 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"); } } } }