windows,获取系统自动锁定重新启动时间

windows,获取系统自动锁定重新启动时间,windows,winapi,system,undocumented-behavior,Windows,Winapi,System,Undocumented Behavior,这是一项艰巨的任务。 以获得下一个系统自动锁定或自动睡眠的剩余时间 有什么想法吗 提前感谢。您可以通过使用SystemPowerInformation选项的CallNtPowerInformation获取下次睡眠时间,然后查看返回结构中的剩余时间字段 CallNtPowerInformationhas 对于屏幕保护程序和自动锁定,您可以使用GetLastInputInfo,即 编辑 对于屏幕保护程序,您可以使用SPI_GETSCREENSAVETIMEOUT标志获取屏幕保护程序的超时值(以秒为单

这是一项艰巨的任务。 以获得下一个系统自动锁定或自动睡眠的剩余时间

有什么想法吗


提前感谢。

您可以通过使用
SystemPowerInformation
选项的
CallNtPowerInformation
获取下次睡眠时间,然后查看返回结构中的剩余时间字段

CallNtPowerInformation
has

对于屏幕保护程序和自动锁定,您可以使用
GetLastInputInfo
,即

编辑

对于屏幕保护程序,您可以使用SPI_GETSCREENSAVETIMEOUT标志获取屏幕保护程序的超时值(以秒为单位)。将此结果与
GetLastInputInfo
的结果结合起来,找出它触发的时间。

是的,我可以通过
CallNtPowerInformation
获得睡眠。但是我不能仅仅通过上次输入时间来计算屏幕保护程序的剩余时间或自动锁定时间。Bisides,
GetLastInputInfo
检索上次输入时间,但是如果任何程序通过
SetThreadExecutionState重置显示空闲计数器(ES|u CONTINUOUS | ES| u display_REQUIRED)
,我会得到错误的预测。@user2431141我已经编辑了答案,以显示如何确定屏幕保护程序之前的时间。如果任何程序确实如您所述使用了
SetThreadExecutionState
,它将不会进行屏幕保存。如果程序调用
SetThreadExecutionState
,但由于某种原因退出。我想屏幕保护程序会出现。