locked
FAQs: 我如何才能知道用户没有在使用设备(用户处于空闲状态)? RRS feed

  • 问题

  • 为了帮助大家更好地学习 .NET Compact Framework  技术,微软论坛技术支持团队编辑了一些列的 "VSD 常见问题及解答" 精华帖。

    本帖的主题是: 我如何才能知道用户没有在使用设备(用户处于空闲状态)?

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

    如果您想阅读更多的 ".NET Compact Framework  常见问题及解答",请打开索引页面:
    http://social.msdn.microsoft.com/Forums/zh-CN/1729/thread/0b66fb9f-37a7-4d77-a43d-6fbd801b26fd

    2011年3月9日 2:59

答案

  • 去侦测用户已经有段时间没有使用设备的方法是: RequestPowerNotifications 函数向系统请求电源切换的通知,这样当你在你的程序中收到这个通知时候,你就知道用户已经有段时间没有使用设备了,在Windows Mobile6 SDK中有个例子叫PowerManager,你可以在Windows Mobile 6 SDK Samples\Common\CPP\Win32\PowerManager文件下找到这个例子.

    当你运行这个例子后,请注意当设备在黑屏时候您将在输出窗口中看到下面的信息:

      Power Notification Message: PBT_TRANSITION
      Flags: 10010000Length: 26SystemPowerState: backlightoff
      Power Notification Message: PBT_TRANSITION
      Flags: 12010000Length: 6SystemPowerState: on
      Power Notification Message: PBT_TRANSITION
      Flags: 10010000Length: 26SystemPowerState: backlightoff

     

    另外一种就是使用Activity Timers.方法,特别要注意的是,你必须监视下面的事件:

    HANDLE hEventUserActive = OpenEvent(EVENT_ALL_ACCESS, FALSE, TEXT("PowerManager/UserActivity_Active"));
      HANDLE hEventUserInactive = OpenEvent(EVENT_ALL_ACCESS, FALSE, TEXT("PowerManager/UserActivity_Inactive"));


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年3月9日 3:00