WindowsアプリケーションでWindowsのロック解除イベントを追跡したい。それはどのように行われますか?そのために使用されるイベントは何ですか?そのために名前空間をインポートする必要がありますか?
ユーザーがウィンドウのロックを解除している間、アプリケーションはいくつかのタスクを実行する必要があります。
この StackOverflow の回答に投稿されているように: https://stackoverflow.com/a/604042/700926 SystemEvents.SessionSwitch Eventを確認する必要があります。
サンプルコードは、参照された回答にもあります。
参照されている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");
}
}
}
}