$time = InputBox ( "定时关机", "请输入时间(单位:分钟)后关机",40,'',220,150)
If StringIsInt($time) Then
Sleep($time*60*1000)
Shutdown(9) ;要关机并断电,则应指定数值 9 (shutdown + power down = 1 + 8 = 9).
TrayTip("要下班了",$time & "分钟后将关闭计算机!",30,1) ;1=消息图标, 2=警告图标, 3=错误图标
Sleep(5000)
;$a=$time*60
;Run("shutdown -s -t "&$a)
Else
MsgBox(4096,"警告", "输入错误,请重新输入",5)
EndIf
Autoit--函数参考
Shutdown
关机.
Shutdown ( 代码 [, 理由])
参数
代码 | shutdown 命令的各种代码的组合值. 参考注意事项. |
理由 | [可选参数] 用户关机理由代码 |
返回值
成功: | 返回值 1. |
失败: | 返回值 0 并按照 GetLastError() 的值设置 @error. |
注意/说明
关机代码可以是下面的值:
0 = Logoff(注销)
1 = Shutdown(关机)
2 = Reboot(重启)
4 = Force(强制执行)
8 = Power down(关机)
16= Force if hung(强制挂起)
32= Standby(待机)
64= Hibernate(休眠)
可按需把相应数值相加.比如,要关机并断电,则应指定数值 9 (shutdown + power down = 1 + 8 = 9).
若设置了其它代码则待机或休眠将被忽略.
相关
Shutdown--扩展阅读
Windows XP系统通过一个名为Shutdown.exe的程序来完成关机操作(位置在Windows\System下),一般情况下XP的关机是由关机程序 shutdown.exe来实现的,关机的时候调用shutdown.exe。由此可知要阻止强行关机就是要取消对shutdown.exe的调用。
进程文件:Shutdown or Shutdown.exe
进程名称:Shutdown Event Tracker
操作命令
shutdown.exe -a 取消关机
shutdown.exe -s 关机
shutdown.exe -f 强行关闭应用程序。
shutdown.exe -m \\计算机名 控制远程计算机。
shutdown.exe -i 显示图形用户界面,但必须是Shutdown的第一个参数。
shutdown.exe -l 注销当前用户。
shutdown.exe -r 关机并重启。
shutdown.exe -t时间 设置关机倒计时。 设置关闭前的超时为 xxx 秒。对于windows 2003 系统,有效范围是 0-600,默认为 30
shutdown.exe -c"消息内容" 输入关机对话框中的消息内容(不能超127个字符)
比如你的电脑要在24:00关机,可以选择“开始→运行”,输入“at 24:00 Shutdown -s”,这样,到了24点,电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入“Shutdown.exe -s -t 7200”,这里表示120分钟后自动关机,“7200”代表120分钟(7200秒) 。
如果想取消的话,可以在运行中输入“shutdown -a”。另外输入“shutdown -i”,则可以打开设置自动关机对话框,对自动关机进行设置。
让Windows 2000也实现同样的效果,可以把Shutdown.exe复制到系统目录System32下
eg:shutdown.exe -s -m \\z20235
当然你还可以把shutdown与at命配合使用来定时关机,会更加的精确,格式:at 关机时间 shutdown 选项
注释
•必须为用户授予关闭系统的用户权利,该用户才能使用shutdown命令关闭本地或远程管理的计算机。详细信息,请参阅“相关主题”中的“访问控制概述”和“特权”。
•用户必须是Administrators组的成员才能对本地或远程管理的计算机的意外关机进行批注。如果目标计算机已加入某个域,则DomainAdmins组的成员可能会执行该过程。详细信息,请参阅默认本地组和默认组。
•如果希望一次关闭多台计算机,可针对每台计算机使用脚本来调用shutdown,或者可使用shutdown/i显示远程关机对话框。
•一旦指定了主要和次要原因代码,您必须首先为计划使用某种特定原因的每个计算机定义那些原因代码。如果目标计算机上没有定义原因代码,关闭事件跟踪程序将无法记录正确的原因文本。
•切记使用p:参数指出关机是计划关机。省略p:表示关机是非计划关机。如果键入p:,后面跟着非计划关机的原因代码,命令将不会执行关机。相反,如果省略p:并为计划关机键入原因代码,命令也不会执行关机。
示例
要强制让应用程序在一分钟延迟后关闭并重新打开本地计算机,并注明原因是“应用程序:维护(计划内)”,注释内容为“重新配置myapp.exe”,请键入:
shutdown/r/t60/c"Reconfiguringmyapp.exe"/f/dp:4:1
要使用相同的参数重新启动远程计算机//ServerName,请键入:
shutdown/r/m//servername/t60/c"Reconfiguringmyapp.exe"/f/dp:4:1
应用:
(1)您如果想在1小时后自动关闭计算机,比如:您正在下载一个软件或一部电影,而MM让你出去浪漫,您会怎么办?停止下载?太可惜了!继续?下载完后电脑怎么关闭?不用愁!您可以使用该命令解决:
shutdown–s–t3600(系统在3600秒后关闭计算机,时间自定)
您就放心地去浪漫了,而不用担心您的计算机长期开着了。
(2)出现RPC漏洞而导致倒计时自动关机,使用该命令取消倒计时自动关机:
shutdown–a(方法:”开始”->”运行”->”shutdown–a”->”确定”)
之前的网络病毒非常猖獗,如震荡波、冲击波等就是针对WindowsXP的RPC(远程过程调用)漏洞设计的,它导致系统倒计时自动关机,很多人一定为此头痛不已,但你可以用这种方法解决.
(3)利用Shutdown命令实现网络统一关机
笔者所在单位下班后常有很多老师不关电脑,领导发现后要求解决这个问题。我想如果到各办公室去查看,这很费时,于是就想能否通过一台电脑把所有的机器都关掉。因为所有的办公用机安装的都是WindowsXP系统,就想到了使用远程关机“Shutdown”命令。具体方法如下:
步骤1单击“开始→运行”,在对话框中输入“Gpedit.msc”,单击<确定>,打开“组策略编辑器”。
步骤2在“组策略编辑器”窗口的左边打开“计算机配置→Windows设置→安全设置→本地策略→用户权利指派”,在右边的窗口选择“从远端系统强制关机”。在弹出的对话框中显示目前只有“Administrators”组的成员才有权远程关机;单击对话框下方的<添加用户或组>按钮,然后在弹出的对话框中输入“Heyongsheng”(管理员账号),再单击<确定>。
步骤3这时在“从远端系统强制关机”的属性中便添加了一个“Heyongsheng”用户,单击<确定>,最后关闭“组策略编辑器”窗口。
对各办公室的电脑进行上述操作后,我们便给每台计算机的“Heyongsheng”用户授予了远程关机的权限。到下班时,我只要在自己的机器上进行以下操作:
步骤4单击“开始→运行”,在对话框中输入“Shutdown-I”,屏幕上将显示“远程关机”对话框。
(4)用XP的ShutDown.exe实现服务器定时重启
WindowsXP的关机是由Shutdown.exe程序来控制的,位于WindowsSystem32文件夹中。如果想让Windows2000也实现同样的效果,可以把Shutdown.exe复制到系统目录System32下。
首先当然要求主板必须支持软件关机功能,否则你还得亲自去按电源开关才能关机,现在的主板一般都支持软件关机。操作步骤:单击“开始”/程序/附件/系统工具中"计划任务",弹出计划任务窗口,然后双击"添加已计划的任务",运行“计划任务向导”,按“浏览”,找到WINDOWS目录中的Rundll32.exe文件,单击"打开"按钮,在出现的对话框中键入该任务的名字(如"定时关机"),执行方式选择“每天”,然后按“下一步”选择定时关机时间(可以先试一下比现在机器上显示的时间晚1分钟),下一步选中“当单击完成打开该任务的高级属性”,单击"完成",最后右击"定时关机"来打开属性,在运行栏输入“C:\WINNT\system32\shutdown.exe-r-t1”,单击"确定"不久,OK了。
实际应用
实例: at 12:45 shutdown -s -t 20 就是让机子在12:45关机,并倒计时20秒。须要注意的是在使用它时须先打开 “Task Scheduler”服务。