我想制作一个批处理文件,一段时间后它将使我的计算机休眠。
我发现最接近的东西是将其置于待机状态,但其工作方式与键盘上的“睡眠”按钮不同(启动时间更长,在单击鼠标时不会唤醒)。有任何想法吗?在Python或C#中会更容易吗?
上面提到的不太理想的技术是在cmd提示符下调用此命令:
Rundll32.exe powrprof.dll,SetSuspendState
我想制作一个批处理文件,一段时间后它将使我的计算机休眠。
我发现最接近的东西是将其置于待机状态,但其工作方式与键盘上的“睡眠”按钮不同(启动时间更长,在单击鼠标时不会唤醒)。有任何想法吗?在Python或C#中会更容易吗?
上面提到的不太理想的技术是在cmd提示符下调用此命令:
Rundll32.exe powrprof.dll,SetSuspendState
Answers:
只需命令
rundll32.exe powrprof.dll,SetSuspendState
系统是否休眠,但是如果您编写以下代码:
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
并使用以下命令关闭休眠模式:
powercfg -hibernate off
现在,您的系统将进入睡眠状态,如果为它选择了一个设备,它将在鼠标移动时唤醒(向下滚动以了解操作方法)。
批处理计时器:
timeout /t 1200
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
其中1200是秒,这意味着20分钟后批处理将运行sleep命令。
(可选)您可以防止取消倒数计时(如果您在批处理窗口中按任意键):
timeout /t 1200 /nobreak
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
关于如何用鼠标唤醒的小技巧:
转到: 开始->控制面板->鼠标。
在“鼠标属性”窗口中,单击“ 硬件”选项卡,然后从设备列表中选择鼠标。通常,这里只列出一只鼠标,但这取决于您连接到计算机的硬件。从列表中选择鼠标后,单击“ 属性”按钮。
现在,在鼠标的“ 属性”窗口中,单击“ 常规”选项卡上的“ 更改设置”按钮。
在打开的窗口中,单击“ 电源管理”选项卡,然后选中标题为“ 允许该设备唤醒计算机 ”的选项。单击此窗口上的“ 确定”按钮,然后在仍打开的“ 鼠标属性”窗口上单击“ 确定”按钮。从现在开始,您可以通过单击鼠标按钮或四处移动鼠标将Windows 7从睡眠模式唤醒。
shutdown /h
将使计算机进入休眠状态(虽然不确定是否挂起)。
.NET抢救。此解决方案无需更改PC配置(关闭休眠)即可使计算机进入睡眠状态。批量运行此命令:
powershell.exe -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)"
您可以将其::Suspend
用于睡眠,也可以::Hibernate
(用于其他答案的工作方式)。SetSuspendState的文档。
由于System.Windows.Forms
默认情况下未加载名称空间(在Powershell ISE中会加载),因此您首先需要为此加载程序集。
您可以尝试使用SetSystemPowerState来避免禁用休眠模式。
rundll32.exe kernel32.dll,SetSystemPowerState
请注意,添加1,0或1 0甚至执行Rundll32.exe powrprof.dll,SetSuspendState 0 0 1或Rundll32.exe powrprof.dll,SetSuspendState 0,0,1表示参数(0,0,1)表示无。
powrprof.dll,SetSuspendState不会解析rundll32样式参数,因此将其忽略。这就是为什么您必须禁用休眠模式的原因。
这个问题已经回答。
powercfg -h关闭并启动/ min“” C:\ WINDOWS \ System32 \ rundll32.exe PowrProf.dll,SetSuspendState 0,1,0&ping -n 3 127.0.0.1> nul&powercfg -h打开并退出
请参阅以下内容: