检测 windows 通用应用上的用户是否空闲

Detect if user Idle on windows universal app

我正在为 windows 10 个通用应用程序(仅限移动和桌面设备系列)开发一个 class 库。如果用户空闲(没有触摸、鼠标移动、按键等)x 秒,我需要调用一个事件。 This method 可以用来解决 android 上的这个问题。但是我在 windows UWP 上找不到解决方案。

UWP 中是否有 API 可用于实现此目的?

您可以在应用程序的 CoreWindow 上使用各种事件检测全局输入:

使用 CoreWindow.PointerPressed、PointerMoved 和 PointerReleased 进行触摸和鼠标输入。

键盘输入:KeyUp 和 KeyDown(软键)和 CharacterReceived(用于通过和弦和文本建议生成的字符)

使用这些来检测用户是否处于活动状态,如果没有任何这些事件的时间太长则闲置。

我知道这是一个很老的问题,但我认为你现在可以用 RegisterBackgroundTask

得到相同的结果

刚刚设置:

new TimeTrigger(15, false) //For time trigger

Link

new SystemCondition(SystemConditionType.UserNotPresent)) //And so you want to know so user is not present

Link

App.xaml.cs 中的用法示例:

var builder = new BackgroundTaskBuilder();
builder.Name = "Is user Idle";
builder.SetTrigger(new TimeTrigger(2, false)); //two mins
builder.AddCondition(new SystemCondition(SystemConditionType.UserNotPresent));
// Do not set builder.TaskEntryPoint for in-process background tasks
// Here we register the task and work will start based on the time trigger.
BackgroundTaskRegistration task = builder.Register();
task.Completed += (sender, args) =>
{
    //Handle user not present (Idle) here.
};