C# UWP中空闲用户的检测

C# UWP中空闲用户的检测,c#,.net,xaml,uwp,C#,.net,Xaml,Uwp,我想知道用户何时空闲执行操作,因此我决定在我的页面中附加PointerMoved事件是一个好的开始。每次移动鼠标光标时,计数器都会重置 问题是我的页面包含一个显示网站的WebView控件。它几乎覆盖了整个屏幕。我观察到,当我移动鼠标光标时,PointerMoved事件在WebView上时不会引发 但更糟糕的是:在myWebView.PointerMoved中添加处理程序时也会发生同样的情况。它不会引起任何事件 也许我做错了。 我能做些什么来检测用户何时空闲?我使用的方法是否错误?我只是通过Cor

我想知道用户何时空闲执行操作,因此我决定在我的
页面中附加
PointerMoved
事件是一个好的开始。每次移动鼠标光标时,计数器都会重置

问题是我的
页面
包含一个显示网站的
WebView
控件。它几乎覆盖了整个屏幕。我观察到,当我移动鼠标光标时,
PointerMoved
事件在
WebView
上时不会引发

但更糟糕的是:在
myWebView.PointerMoved
中添加处理程序时也会发生同样的情况。它不会引起任何事件

也许我做错了。
我能做些什么来检测用户何时空闲?我使用的方法是否错误?

我只是通过CoreWindow对象和它的PointerMoved事件尝试了它,但即使是webview也没有触发该事件

也许使用单进程模型的后台任务可以让您完成您的场景

后台任务模型包含userpresent和useraway的触发器:

new SystemTrigger(SystemTriggerType.UserPresent, false);
new SystemTrigger(SystemTriggerType.UserAway, false);

使用单进程模式,您可以确保您的应用程序被调用,而不是其他进程中的后台任务:

您希望只获取程序中的空闲时间(例如,如果他们将其最小化并访问youtube一小时),还是希望用户从计算机中空闲的时间(就像他们起床并停止使用电脑一个小时)这是一个信息亭模式的应用程序。我想,当我的页面处于活动状态时,知道用户何时空闲就足够了。我不必是一个完美的时机。必要的是,几分钟后,如果用户没有在我的页面上生成任何输入,它将返回主页(另一页).Well webview不支持
PointerMoved
根据文档,文档中还提到了一个解决方法。请看备注部分。@Jacobr365这看起来像是一个糟糕的黑客攻击。您有关于使用外部脚本thingy调用的示例吗?谢谢,我个人没有示例。但谷歌发现了一些小技巧看一看。这不完全是你想要的,但应该给你一个基本的想法。好吧,我有点迷茫。这是否意味着我应该创建一个后台任务来检测用户是否在那里?假设我可以正确创建它,当后台任务检测到这种情况(用户不在)时,我如何在主应用程序中引发事件?使用单进程模型,它不会在后台进程中调用,而只会在应用程序进程中调用。它将在app.xaml.cs中调用OnBackgroundActivated。如果保留对根框架的引用,则可以从那里将其推送到您的UI。例如,您可以向我们展示一些代码吗?读取范围太广。您知道,最好是边做边学:)提前谢谢!给我几分钟时间。现在就测试它;我不喜欢的是你无法控制用户离开/出现的定义。现在等待windows触发任务。请看:但正如所说的,windows调用触发器时你没有太多控制权。所以对我来说,这不是一个很好的解决方案;如果可以的话将javascript添加到站点可能最好在web应用程序中执行指针移动检测,然后将其传播到c#