最初,我的问题有点不同:
当我使用 BigBox (Launchbox) 时,我选择了“睡眠”选项,它一直让我的笔记本电脑进入休眠状态。我无法通过键盘或鼠标唤醒机器,只能通过电源按钮。如果我禁用休眠,BigBox 中的“睡眠”选项根本不起作用。我单击“睡眠”选项,BigBox 只会发出噪音。
但是,我只需使用左下角的 Windows 菜单即可进入睡眠状态。当我将 BigBox 安装在我的另一台笔记本电脑和我的 Windows 10 PC 上时,它确实会进入睡眠状态,因此它似乎与我的 Gateway 笔记本电脑(型号:GWTN156-7BK)隔离。
我做了很多尝试,现在我不确定这个问题是否只存在于 BigBox。它可能更像是一个普遍的 Windows 问题。
打开休眠模式后,以下命令将使我的机器进入休眠状态(据我了解,这是预期的行为)
rundll32.exe powrprof.dll, SetSuspendState Sleep
因此,我禁用了休眠模式,现在,当我运行 sleep 命令时,什么都没有发生。(当我按下 Enter 键时,它只会转到命令行的下一行。没有错误消息)
我也尝试过:rundll32.exe powrprof.dll,SetSuspendState 0,1,0
事件查看器显示:
User-mode process attempted to change the system state by calling SetSuspendState or SetSystemPowerState APIs.
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Windows-Kernel-Power" Guid="{331c3b3a-2005-44c2-ac5e-77220c37d6b4}" />
<EventID>187</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>243</Task>
<Opcode>0</Opcode>
<Keywords>0x8000400000000404</Keywords>
<TimeCreated SystemTime="2022-11-28T20:28:04.3791459Z" />
<EventRecordID>21998</EventRecordID>
<Correlation />
<Execution ProcessID="984" ThreadID="8572" />
<Channel>System</Channel>
<Computer>DESKTOP-HOHLCJ3</Computer>
<Security UserID="S-1-5-21-4090141023-304028169-1425888792-1002" />
</System>
- <EventData>
<Data Name="ApiCallerNameLength">53</Data>
<Data Name="ApiCallerName">\Device\HarddiskVolume3\Windows\System32\rundll32.exe</Data>
<Data Name="SystemAction">3</Data>
<Data Name="LightestSystemState">2</Data>
</EventData>
</Event>
此外,我知道有比使用此命令行更好的方法来让 PC 休眠。但是,我想了解发生了什么,因为我猜测这是我的原始问题的线索(启用休眠时,BigBox SLEEP 命令会休眠,但禁用休眠时它什么也不做。换句话说,BigBox 的行为就像命令行一样,所以我猜测它正在做一些类似的事情。)我希望如果我能弄清楚为什么命令行不起作用,它能给我一个线索,告诉我为什么 BigBox 的行为相同。
答案1
使用@DrMoishe Pippik 提到的工具,我发现使用它关闭显示器实际上会使我的计算机进入睡眠状态。
psshutdown64.exe -x
时间参数似乎是以小时而不是秒为单位的,但我没有费心测试。所以我只是使用任务计划程序或其他应用程序将命令作为批处理文件运行。
答案2
Sysinternals(现为 Microsoft 的一部分)有该工具关机,特别是因为并非所有关机选项都可以从 CMD 或批处理文件中轻松获得。使用以下命令进入睡眠状态,也许添加文件位置的完整路径:
psshutdown64.exe -d -t 0
当然,从睡眠状态唤醒取决于您的设置。[此 PC 设置为忽略鼠标移动(以免摇晃桌子唤醒 PC),但按下按键即可唤醒它。]