c# - 如何在 C# Windows 应用程序中获取 Windows 解锁事件?

标签 c# windows

我想跟踪 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/

相关文章:

c# - 程序集版本控制不匹配? (.Net Core 2.0 与 .NET Standard 2 类库)

c# - Blazor 是否有一些像 vue 中的 $attrs 一样工作的机制?

c# - 引用 .ccproj 中的运行时内容 (Azure SDK 2.9)

windows - 如何在通用 Windows 应用程序中绘制圆弧

windows - 调用系统后 makePSOCKcluster 在 win x64 上挂起

c# - 如何比较列表并有效地获得最频繁的对?

c# - 外部注释以相反的顺序包含,.Net Visual Studio

c# - 从 C# Windows 应用程序读取/写入三星安卓手机/平板电脑

c++ - ListView 中的 Syslink

php - 在Windows 10上的多个PHP版本之间进行切换的同时,在WAMP(WAMP64)中实现CLI PHP的正确方法