我知道Windows上几乎所有内容(例如打开任何类型的应用程序)都可以从命令提示符或“ 运行”菜单中完成。
如何使计算机进入睡眠状态或关机?这是什么命令?
我知道Windows上几乎所有内容(例如打开任何类型的应用程序)都可以从命令提示符或“ 运行”菜单中完成。
如何使计算机进入睡眠状态或关机?这是什么命令?
Answers:
您会发现shutdown.exe
成为您的朋友。
其他方便的命令请参阅这篇文章:
睡眠计算机(更多信息请参见https://superuser.com/a/463652/249349)
锁工作站
休眠计算机
see answers by Scott Chamberlain and Eric L
重新启动电脑
Shutdown.exe -r -t 00
关机电脑
Shutdown.exe -s -t 00
编辑/更新:
如果打开休眠模式,看来使计算机休眠是有问题的。
从其他答案复制:
您可以尝试PsShutdown 或:
用于睡眠的命令rundll32.exe powrprof.dll,SetSuspendState 0,1,0是正确的-但是,如果您不关闭睡眠模式,它将进入睡眠模式而不是睡眠模式。
这样做的方法如下:
转到“开始”菜单,然后键入cmd.exe,右键单击并选择“以管理员身份运行”,以打开提升的命令提示符。输入以下命令:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
在于它无法正常工作。SetSuspendState
将使计算机进入一种混合睡眠/休眠模式。从开始菜单使用“睡眠”按钮时,可以通过按键盘上的任意键来使计算机从睡眠状态恢复。使用此命令行,由于深度睡眠状态,make的恢复速度要慢得多,并且只有在按计算机上的电源按钮后,make才能恢复。按键无法恢复。那么...您如何使其像普通待机模式一样处于睡眠状态-只需按下一个键即可恢复?
rundll32
不应用于呼叫,SetSuspendState
因为其签名与期望的签名不匹配rundll32
。请参阅:support.microsoft.com/en-us/kb/164787和msdn.microsoft.com/en-us/library/windows/desktop/…第一个参数将变为垃圾值,而不是FALSE值。这就是为什么它休眠而不睡觉的原因。
如果计算机启用了休眠模式,则其他人发布的方法将无法正常工作,该计算机将不会在键盘上唤醒,或更重要的是,不会在计划任务上唤醒。
Microsoft的Sysinternals工具之一是PsShutdown,psshutdown -d -t 0
它使用的命令将使计算机正确休眠,而不是休眠。
run as administrator
右键单击选项
psshutdown.exe
从存档复制到例如C:\Windows\System32
,才能使用不带路径前缀的命令。然后,需要以psshutdown -d -t 0
管理员权限执行才能挂起。这应该是可接受的答案,即使不是使用Windows预安装的工具也可以回答问题。
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
睡眠命令是正确的-但是,如果您不关闭休眠模式,它将进入休眠模式而不是休眠模式。
这样做的方法如下:
进入“开始”菜单并通过键入内容cmd.exe
,右键单击并选择“以管理员身份运行”来打开提升的命令提示符。输入以下命令:
powercfg -hibernate off
powrprof.dll
休眠模式打开时,是否有混合睡眠/挂起状态的名称?只是想知道。它与ACPI的任何州有关吗?
rundll32
不应用于呼叫,SetSuspendState
因为其签名与期望的签名不匹配rundll32
。请参阅:support.microsoft.com/en-us/kb/164787和msdn.microsoft.com/en-us/library/windows/desktop/…第一个参数将变为垃圾值,而不是FALSE。这就是为什么它休眠而不睡觉的原因。
我已经为创建了一个快捷方式rundll32.exe powrprof.dll,SetSuspendState 0,1,0
(也尝试了0,0,0),但是运行该快捷方式似乎会使我的PC进入休眠状态。我无法使用键盘唤醒PC。我必须按下电源按钮,并且PC会显示主板上的留言等。
阅读Windows API文档后,我创建了一个非常简单的程序,只需键入3行。我已经将我编译的可执行文件上载到了此页面(单击“ SleepTest.exe”),但是此文件可能会在一段时间后删除(这是我通过快速的Google搜索发现的免费文件托管站点)。
如果您不信任我(完全可以)或文件已被删除,则可以自己编译代码。您需要将“ PowrProf.lib”添加到链接器的其他依赖项。
#include "stdafx.h"
#include "windows.h" <-- Added this to make it work on Windows.
#include "PowrProf.h" <-- Added this to use the sleep function.
int main()
{
SetSuspendState(FALSE, FALSE, FALSE); <-- Added this actual call.
return 0;
}
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
似乎在做同样的事情,但是不知何故,上面的程序没有使计算机进入休眠状态。我可以通过按键盘上的任意键立即唤醒PC(不发送任何主板上的消息等)。
您可以从命令行中启动挂起或休眠选项,如下所示并在本文中进行了引用。
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
如果您的计算机设置为允许休眠,则上述命令将启动休眠模式。如果禁用了休眠功能,则它将进入待机状态。正如其他用户先前回答的那样,shutdown.exe /?
将提供许多关闭选项。
rundll32
不应用于呼叫,SetSuspendState
因为其签名与期望的签名不匹配rundll32
。请参阅:support.microsoft.com/en-us/kb/164787和msdn.microsoft.com/en-us/library/windows/desktop/…第一个参数获取垃圾信息,而不是FALSE,因此它始终休眠而不是进入休眠状态。睡觉。
您必须首先在Windows中禁用“休眠”,然后将计算机置于“ 睡眠”状态。使用以下两个命令:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
为了进行相反的操作(使计算机休眠),请使用以下命令:
powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
rundll32
不用于呼叫SetSuspendState
,不应该用于此目的。第一个参数获取垃圾,而不是正确的值。因此,它总是休眠而不是睡觉(如果您根本没有禁用休眠)。
仅QUICK SLEEPER对我有效(在Windows 7,8,10中有效)。
ps源代码可在此处获得。
问题的关闭部分对于每个人都是显而易见的。
shutdown.exe /?
显示关机/重新启动/高级选项启动/固件启动的所有选项。
但是我发现睡眠部分周围有很多扑朔迷离的动作。
每个人都会得到它rundll32.exe
不应该用来调用随机函数的功能,它在这里完全是出于巧合而休眠的。但这就是Windows的本质-人们经常在黑盒子里闲逛,他们发现了数百种变通办法来完成工作(大声疾呼到剂量提示)。
有很多建议使用外部工具的 “ 适当 ”解决方案,但是即使多年来这个问题一直很活跃,我似乎也找不到本地的(混合/拼音/其他)批处理脚本。
所以这是我简单的power_sleep.bat:
@echo off &mode 32,2 &color cf &title Power Sleep
set "s1=$m='[DllImport ("Powrprof.dll", SetLastError = true)]"
set "s2=static extern bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);"
set "s3=public static void PowerSleep(){ SetSuspendState(false, false, false); }';"
set "s4=add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
set "ps_powersleep=%s1%%s2%%s3%%s4%"
call powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -Command "%ps_powersleep:"=\"%"
exit
它甚至可以用作一个大的单行命令:
powershell.exe -C "$m='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(bool hibernate,bool forceCritical,bool disableWakeEvent);public static void PowerSleep(){SetSuspendState(false,false,false); }';add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"