受欢迎的博客标签

C#程序防止电脑自动锁屏

Published

使用SetThreadExecutionState函数来告诉系统程序正在运行,需要保持系统活跃。

实现功能

防止屏幕自动关闭
防止系统进入睡眠模式
防止自动锁屏

 

工作原理​​


调用Windows API的SetThreadExecutionState函数,告诉系统应用程序正在运行,需要保持显示和系统活跃。


这个程序可以是一个控制台应用程序,它设置执行状态,然后等待用户输入退出。

当程序运行时,系统不会自动锁屏或进入睡眠状态。当用户按下任意键时,程序退出,并恢复原来的电源设置。


注意:这个程序只影响睡眠和锁屏的超时,不会影响屏幕保护程序,但通常屏幕保护程序也会在系统不活动时启动,而设置执行状态可以同时阻止屏幕保护程序。


我们使用以下标志:
ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED


这样设置后,系统会认为用户正在与程序交互,从而不会自动锁屏或进入睡眠。

这个程序需要一直运行才能有效。如果关闭程序,系统将恢复原来的行为。