如何通过 Win XP 脚本注销并进入待机状态?

Pet*_*ter 4 script sleep windows-xp

我正在寻找一种编写脚本(任何类型的)的方法,该脚本既可以让我从本地 Windows 帐户注销,又可以立即使计算机进入睡眠/待机状态。我找到了可以执行其中一项操作但不能注销然后在一个脚本中全部休眠的解决方案。SHUTDOWN 命令不提供此功能,我也找不到任何其他选项。

这适用于现在的 Win XP、SP3,但不久的将来我也会想要一个 Windows 7 解决方案。

感谢您提供有关为什么这是不可能的任何想法或解释。:)

小智 5

这个批处理文件很棒!我添加了一些调整以使其适用于 Windows XP,并且还最大限度地减少了等待待机计划任务的时间。计划任务仅每分钟运行一次,因此我将最长等待时间设置为 1 分 15 秒。现在,我只需单击批处理文件图标即可注销和待机!

这是我如何设置它,一步一步:

  1. 创建目录 "C:\MyProg"

  2. 创建并保存文本文件 "C:\MyProg\Standby.bat"

     rem * Standby *  
     rundll32.exe powrprof.dll,SetSuspendState
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建并保存文本文件“C:\MyProg\Logoff-Standby.bat”

     rem * Logoff & Standby *  
     rem  
     rem from http://superuser.com/questions/122432/how-can-i-logoff-and-go-to-stand-by-via-win-xp-script
    
     rem  
     rem * Find time to schedule the standby task *  
     rem  
     rem Get current time hours, minutes, and seconds  
     set curtime=%time%  
     set curhh=%curtime:~0,2%  
     set curhh=%curhh: =%  
     set curmm=%curtime:~3,2%  
     set curmm=%curmm: =%  
     set curss=%curtime:~6,2%  
     set curss=%curss: =%  
     rem Set values for near seconds, minutes, and hours  
     rem Scheduled tasks can only run at a new minute, so bump the time up by 1 min, 15 sec and then round down to zero seconds
     set /a nearss=%curss% + 15  
     set /a nearmm=%curmm% + 1  
     set /a nearhh=%curhh%  
     if %nearss% gtr 59 (  
         set /a nearss=%nearss% - 60  
         set /a nearmm=%nearmm% + 1  
     )  
     if %nearmm% gtr 59 (  
         set /a nearmm=%nearmm% - 60  
         set /a nearhh=%nearhh% + 1  
     )  
     if %nearhh% gtr 23 set /a nearhh=%nearhh% - 24  
     rem Add leading zero to minutes and hours  
     if %nearmm% lss 10 set nearmm=0%nearmm%  
     if %nearhh% lss 10 set nearhh=0%nearhh%  
     rem Set neartime to result rounded down to zero seconds  
     set neartime=%nearhh%:%nearmm%:00  
     rem  
     rem * Schedule task to standby *  
     rem  
     schtasks /create /tn "standby" /tr C:\MyProg\standby.bat /sc once /st %neartime% /ru System  
     rem  
     rem * Logout *  
     rem  
     shutdown -l -f
    
    Run Code Online (Sandbox Code Playgroud)
  4. 右键单击C:\MyProg\Logoff-Standby.bat>发送到>桌面(创建快捷方式)