Windows 上的睡眠定时器

Windows 上的睡眠定时器

我想在晚上在我的 PC 上运行一个特定的噪音发生器 (mynoise.net),并让它运行一段时间,然后让 Windows 进入睡眠状态(我不想关闭 Windows,只是做与点击开始 > 电源 > 睡眠完全相同的事情)。

我还希望关闭显示器 - 尽管我不想使用它们的物理开关,因为这样做会开始移动窗口、重新配置主显示器等。编辑:我的意思是在睡觉前关闭显示器,这样当噪音发生器运行时,它们就不会在黑暗的房间里打扰我。

我尝试过简单地更改电源选项,其中有“关闭显示器”和“让计算机进入睡眠状态”的设置,但是

a) 然后我必须记得在第二天早上手动更改电源选项。我只想要一个一次性睡眠定时器。

b) 噪音生成器站点会阻止 Windows 进入睡眠状态(可能是设计使然)。因此我需要一些可以强制进入睡眠状态的东西,就像我通过“开始”菜单选择它一样。

有什么建议吗?也许是一些我还没找到的应用程序,或者像命令行指令这样的东西,我可以把它放在批处理文件中,或者用 AutoHotkey 触发?

答案1

  1. 单击“开始”
  2. 点击所有程序
  3. 单击附件 > 记事本
  4. 在记事本中复制并粘贴以下命令,然后在您喜欢的位置保存为 sleepcommand.bat。

rundll32.exe powrprof.dll,设置SuspendState 0,1,0

  1. 单击“开始”
  2. 点击所有程序
  3. 单击附件 > 系统工具 > 任务计划程序
  4. 打开任务计划程序后,您可以通过单击“创建基本任务”来创建自己的自定义任务。此操作将启动向导,引导您完成整个过程,提示您要执行的程序。指向您保存 sleepcommand.bat 的位置并设置时间表。

答案2

我编写了一个 AHK 脚本来执行我想要的操作:

; Monitors off and sleep [Win S]
;
#s::
  MsgBox, 1, Sleep timer, Monitors will go off, and computer will sleep in 45 minutes. Press Win+Esc at any time to cancel script.
  IfMsgBox Cancel
    Return
  Sleep 1000
  ; Turn off monitors
  SendMessage, 0x112, 0xF170, 2,, Program Manager
  ; Pause for 45 minutes
  Sleep 1000 * 60 * 45
  ; Put Windows to sleep
  DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0)
Return

; Cancel script [Win Esc]
#Esc::
  MsgBox Cancelling AHK script.
  Reload
Return

相关内容