繁体   English   中英

检测用户是否在 Windows 通用应用程序上空闲

[英]Detect if user Idle on windows universal app

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

UWP 中是否有可用的 API 来实现这一点?

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

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

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

如果这些事件持续太长时间而没有任何这些事件,则使用它们来检测用户是否处于活动状态并空闲。

我知道这确实是个老问题,但我认为您现在可以使用RegisterBackgroundTask获得相同的结果

只需设置:

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

关联

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

关联

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.
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM