如何知道设备何时使用winRT应用程序中的LockApplicationHost类解锁

时间:2015-09-14 03:11:08

标签: c# .net windows windows-runtime win-universal-app

这是我在通用Windows应用中所做的事情:

public MainPage()
{
    InitializeComponent();                
    private LockApplicationHost lol=LockApplicationHost.GetForCurrentView();
}
private async void Lol_Unlocking(LockApplicationHost sender, LockScreenUnlockingEventArgs args)
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        alarm.Pause();
        Status.Text = "lolwtf";
    });
}

我试图知道用户何时解锁他的电脑。

编辑:我还得到的错误是: 委托实例方法不能为null' this'。它突出显示:

lol.Unlocking += Lol_Unlocking;

1 个答案:

答案 0 :(得分:0)

  

我想知道用户何时解锁他的电脑。

您可以连接SessionSwitchEventHandler。显然你的应用程序需要运行。 SessionSwitchEventHandler 委托,您可以识别将处理该事件的方法。要将事件与事件处理程序相关联,请将该委托的实例添加到事件中。

Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);
void SystemEvents_SessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e)
{
    if (e.Reason == SessionSwitchReason.SessionLock)
    { 
        //I left my desk
    }
    else if (e.Reason == SessionSwitchReason.SessionUnlock)
    { 
        //I returned to my desk
    }
}

您可以查看SessionSwitchReason Enumeration以查找有关使用SessionSwitchReason类来表示会话切换事件类型的更多信息。

  

lol.Unlocking + = Lol_Unlocking;

应该是lol.Unlocking += Lol_Unlocking(EventHandler_Unlocking);,并且必须在程序中定义EventHandler_Unlocking

我对LockApplicationHost.Unlocking的理解是,它有助于解锁和锁定设备,而确定设备是否已解锁并解锁SessionSwitchEventHandler将是更好的方法。有关LockApplicationHost.Unlocking check this

的更多理解