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

问题描述 投票:0回答:2

这是我在通用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";
    });
}

我想知道用户何时解锁计算机。

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

lol.Unlocking += Lol_Unlocking;
c# .net windows windows-runtime win-universal-app
2个回答
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的更多理解


0
投票

这个问题解决了吗?有什么方法可以使用LockApplicationHost来了解解锁事件吗?

© www.soinside.com 2019 - 2024. All rights reserved.