如何在程序执行期间阻止屏幕保护程序和睡眠?

nao*_*aor 12 c++ sleep windows-7

在Win7上运行的c ++程序中,有没有办法伪造鼠标移动或类似的东西,只是为了防止屏幕保护程序启动和系统进入睡眠状态?我正在寻找最小的方法,我不想使用.NET.谢谢,-nuun

Dam*_*ver 30

不要乱用屏幕保护程序设置,使用SetThreadExecutionState.这是用于通知窗口您的应用程序处于活动状态的API:

允许应用程序通知系统它正在使用中,从而防止系统在应用程序运行时进入睡眠状态或关闭显示屏.

,和

多媒体应用程序(如视频播放器和演示应用程序)在长时间显示视频而无需用户输入时必须使用ES_DISPLAY_REQUIRED

  • 更正:虽然此功能的MSDN页面声明"此功能不会停止执行屏幕保护程序".使用ES_DISPLAY_REQUIRED调用确实会阻止屏幕保护程序触发. (4认同)
  • 如果您使用.NET,这也是要通过p/invoke的方式 - http://pinvoke.net/default.aspx/kernel32.SetThreadExecutionState (3认同)