locked
windows mobile 6.0 SPI_GETBATTERYIDLETIMEOUT 离用户最后输入的时间 RRS feed

  • 问题

  • SPI_GETBATTERYIDLETIMEOUT
    当系统运行在电池电源状态下,离用户最后输入的时间

    SPI_GETEXTERNALIDLETIMEOUT
    当系统运行在AC电源状态下,离用户最后输入的时间

    SPI_GETWAKEUPIDLETIMEOUT
    在系统再次挂起时离系统被自动唤醒的时间

    DWORD batIdle, acIdle, wakeUpIdle;
    SystemParametersInfo(SPI_GETBATTERYIDLETIMEOUT,0,&batIdle,0);
    SystemParametersInfo(SPI_GETEXTERNALIDLETIMEOUT,0,&acIdle,0);
    SystemParametersInfo(SPI_GETWAKEUPIDLETIMEOUT,0,&wakeUpIdle,0);

    请问一下,为什么我查询的batIdle, acIdle, wakeUpIdle这三个值一直都是0啊?
    这个方法哪儿错了?
    我就想查询一下,离用户最后输入的时间或者还有多长时间挂起,还有什么其他方法么?
    2011年11月10日 3:51

答案

全部回复

  • 你好,

    这个可能和OEM有关,具体可以参考下面的这个帖子:

    using SystemParametersInfo to prevent sleep/suspend

    关于Windows Mobile上的电影管理,你可以参考codeproject上的这个帖子,讲的非常清楚:

    Windows Mobile Power Management - CodeProject


    Keep Fighting
    2011年11月10日 5:02
  • 你好,

    您刚才提供的两个参考的帖子,我看过了,谢谢了,

    但还是不能解决我的问题,

    我的程序 隔30秒调用SystemIdleTimerReset(),防止系统睡眠,但是屏幕一直亮着。

    我写了一个关闭屏幕的程序,就是在用户激活系统(按键盘或点触摸屏)后,直到系统该睡眠的时候,我调用程序把屏幕关掉。

    现在问题是,不知道用户最后一次激活系统是什么时候,到现在有多少时间了?

    2011年11月10日 7:38
  • 你好,

    你可以通过点击事件来记录最后一次操作的时间。

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年11月14日 6:12