जैसा कि इस स्टैक ओवरव्लो उत्तर में पोस्ट किया गया है: https://stackoverflow.com/a/604042/700926 आपको SystemEvents.SessionSwitch Event पर एक नज़र रखना चाहिए।
नमूना कोड भी निर्दिष्ट उत्तर में पाया जा सकता है।
मैंने अभी स्पिन के लिए संदर्भित StackOverflow answer में दिखाया गया कोड लिया है और ऐसा लगता है कि .NET Framework 4.5 के साथ विंडोज 8 आरटीएम पर काम करता है।
आपके संदर्भ के लिए, मैंने अभी कंसोल एप्लिकेशन का पूरा नमूना कोड शामिल किया है जिसे मैंने अभी इकट्ठा किया है।
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");
}
}
}
}
स्रोत
2012-09-06 05:14:51
की संभावित डुप्लिकेट: http://stackoverflow.com/questions/603484/checking-for-workstation-lock-unlock-change-with-c-sharp या इस http://stackoverflow.com/questions/44 9 80/कैसे-कर-मैं-प्रोग्रामेटिक रूप से निर्धारित-अगर-मेरा-वर्कस्टेशन-लॉक किया गया –
उस लिंक का उत्तर चिह्न तक नहीं था। :( –
मैंने एक और लिंक जोड़ा - स्टैक ओवरफ्लो पर इस प्रकार के प्रश्न के कई "उदाहरण" प्रतीत होते हैं। हालांकि, मैंने उनमें से एक को मेरे उत्तर के रूप में पोस्ट किया क्योंकि इसमें नमूना कोड शामिल था जो आपको उपयोगी लगेगा। –