2015-09-14 14 views
0

這裏就是我在通用的Windows應用程序所做的:如何當設備解鎖使用WinRT中的LockApplicationHost類應用程式知道

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

我想,當用戶解鎖自己的電腦就知道了。

編輯:也是我不斷收到錯誤是: 委託實例方法不能爲空「這個」。而它突出:

lol.Unlocking += Lol_Unlocking; 

回答

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

我不能在我的通用Windows應用程序中使用您的代碼。有沒有其他方法? –

+0

另外我只是做了你的建議,我在lol_unlocking下面得到了一個紅色下劃線,當我將鼠標懸停在它上面時,它表示lol_unlocking在當前上下文中不存在。 –

相關問題