Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#windows应用程序中获取windows解锁事件?_C#_Windows - Fatal编程技术网

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

如何在c#windows应用程序中获取windows解锁事件?,c#,windows,C#,Windows,我想在windows应用程序中跟踪windows解锁事件。怎么做的?这项活动的目的是什么?我需要为此导入任何命名空间吗 当用户解锁窗口时,应用程序需要执行一些任务。如本StackOverflow回答中所述:您应该查看 示例代码也可以在参考答案中找到 我只是对参考文档中显示的代码进行了一番分析,它似乎可以在带有.NETFramework4.5的Windows8RTM上运行 为了供您参考,我已经包含了我刚刚组装的控制台应用程序的完整示例代码 using System; using Microsoft

我想在windows应用程序中跟踪windows解锁事件。怎么做的?这项活动的目的是什么?我需要为此导入任何命名空间吗


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

如本StackOverflow回答中所述:您应该查看

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

我只是对参考文档中显示的代码进行了一番分析,它似乎可以在带有.NETFramework4.5的Windows8RTM上运行

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

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");
            }
        }
    }
}

可能重复:或该链接中的答案不符合要求:(我又添加了一个链接-似乎有很多“实例”在StackOverflow上的此类问题。但是,我发布了其中一个作为我的答案,因为其中包含了您可能会发现有用的示例代码。我使用的是windows应用程序。我需要在哪里添加
Microsoft.Win32.SystemEvents.SessionSwitch+=new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents\u SessionSwitch)
这一个运行得很好。我已经在表单的初始化事件中添加了上面的代码。