我想跟踪 Windows 应用程序中的 Windows 解锁事件。它是如何完成的?用于此的事件是什么?我是否需要为此导入任何 namespace ?
当用户解锁窗口时,应用程序需要执行一些任务。
最佳答案
正如在这个 StackOverflow 答案中发布的那样:https://stackoverflow.com/a/604042/700926你应该看看 SystemEvents.SessionSwitch Event .
示例代码也可以在引用答案中找到。
我刚刚获取了引用中显示的代码 StackOverflow answer试一试,它似乎可以在带有 .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");
}
}
}
}
关于c# - 如何在 C# Windows 应用程序中获取 Windows 解锁事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293286/