【问题标题】:How to get windows unlock event in c# windows application?如何在 c# windows 应用程序中获取 windows 解锁事件?
【发布时间】:2012-09-06 05:08:14
【问题描述】:

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

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

【问题讨论】:

标签: c# windows


【解决方案1】:

正如 StackOverflow 答案中所发布的:https://stackoverflow.com/a/604042/700926,您应该看看 SystemEvents.SessionSwitch Event

示例代码也可以在参考答案中找到。

我只是试了一下提到的StackOverflow answer 中显示的代码,它似乎可以在带有 .NET 框架 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");
            }
        }
    }
}

【讨论】:

  • 我正在使用 Windows 应用程序。我需要在哪里添加Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);
  • 这个工作正常。我已经在表单的初始化事件中添加了上面的代码。
猜你喜欢
  • 2018-11-18
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多