最近衣服自己洗在开发过程中遇到一个需求就是在不修改电源管理选项的情况下,阻止系统进入休眠状态。和我们的需求比较类似的是视频播放器,在播放视频的时候,即使用户没有操作电脑,也会阻止休眠。退出播放器后,系统又正常了。
实现起来不太复杂,我们可以利用系统的API函数:SetThreadExecutionState
这个函数只有一个参数,可以选择3个值,当然值可以组合使用
只使用Continus参数时,则是恢复系统休眠策略。
不使用Continus参数时,实现阻止系统休眠或显示器关闭一次。
组合使用Continus参数时,实现阻止系统休眠或显示器关闭至线程终止。
C#的示例代码如下:
看着很简单,对不对。当然,如果不需要阻止显示器的关闭,则可以不传递 Display 参数即可。
Windows 的事件查看器对于开发人员来说比较有用,除了开发自己的日志系统外,还可以将一些信息的输出放到这里。
还记得若干年前的拨号上网时代,中国电信不允许路由器拨号,只能通过猫来拨号,这样就导致家庭里多个电脑无法同时上网。后来有网友发现电信拨号客户端有把真实的密码输出到事件查看器里。于是就方便了我们,虽然那时我还没有电脑,但是给亲戚朋友们破解使用还是蛮爽的事情。
当然,这里扯远了。回到我们的话题,日志虽然好,但是随着使用时间的增加,日志里的内容和分类也越来越多,对于我这样的洁癖者来说,及时清理日志就是一个比较麻烦的事情。
应用程序、安全、设置这3个还可以右键选择清空。但是对于应用程序和服务日志里的分类,只能遍历目录,耗时耗力。
今天让我找到了懒人的方法,放上来和大家一起分享。把下面的代码放到一个批处理文件里,要清理日志时,只需要以管理员权限运行即可。
@ECHO OFF
TITLE 清除所有事件查看器里看到的EventLog日志
FOR /F "delims=" %%I IN ('WEVTUTIL EL') DO (WEVTUTIL CL "%%I")
PAUSE
这样简直方便太多。