登录
首页 >  文章 >  软件教程

AutoHotkey定时关机脚本教程

时间:2026-03-26 11:39:56 495浏览 收藏

本文详细介绍了如何使用AutoHotkey编写灵活、安全且用户友好的定时关机脚本,涵盖四种实用模式:固定时长倒计时、用户自定义分钟输入、带取消功能与托盘提醒的增强版,以及精确到指定时间点的关机方案;所有脚本均内置输入校验(如1–1440分钟范围、合法时间格式)、实时倒计时显示、系统托盘交互及关机前预警机制,兼顾易用性与可靠性,让普通用户也能轻松实现个性化自动关机管理。

AutoHotkey怎么实现自动关机定时 AutoHotkey如何写一个可以设置倒计时自动关机的脚本【脚本】

如果您希望使用AutoHotkey创建一个可交互设置倒计时后自动关机的脚本,则需结合GUI输入、时间计算与系统关机命令。以下是实现该功能的多种方法:

一、基础倒计时关机脚本(固定时长)

该方法适用于预设固定分钟数的关机任务,通过内置Sleep指令延时后调用shutdown命令,无需用户交互,适合快速部署。

1、新建文本文件,扩展名改为 .ahk。

2、写入以下内容:
SetTimer, CheckTime, 1000
minutes := 30
total_seconds := minutes * 60
start_time := A_TickCount
return

CheckTime:
elapsed := (A_TickCount - start_time) // 1000
remaining := total_seconds - elapsed
if (remaining   Run, shutdown.exe /s /f /t 0
  ExitApp
}
return

3、双击运行脚本,将在30分钟后强制关机

二、带GUI输入框的交互式倒计时脚本

该方法通过图形界面获取用户输入的分钟数,动态计算关机时间,并实时显示剩余秒数,提升可用性与可控性。

1、新建.ahk文件并写入:
Gui, Add, Text,, 输入倒计时分钟数:
Gui, Add, Edit, vMinutes w100 Number Limit4,
Gui, Add, Button, Default gStartShutdown, 开始倒计时
Gui, Show,, Auto关机定时器
return

StartShutdown:
Gui, Submit
if (Minutes = "") or (Minutes 1440) {
  MsgBox, 请输入1–1440之间的有效分钟数
  return
}
total_seconds := Minutes * 60
SetTimer, Countdown, 1000
Gui, Destroy
Gui, Add, Text, vCountdownText w200 h50 Center, 倒计时中: %total_seconds% 秒
Gui, Show,, 关机倒计时
return

Countdown:
total_seconds--
if (total_seconds   Run, shutdown.exe /s /f /t 0
  ExitApp
}
GuiControl,, CountdownText, 倒计时中: %total_seconds% 秒
return

2、运行后弹出窗口,用户在编辑框输入数字,点击按钮即启动倒计时。
3、脚本运行期间,窗口内实时刷新剩余秒数,关机前无提示但执行确定。

三、带取消功能与系统托盘提醒的增强版

该方法在托盘区域添加图标和右键菜单,支持随时中止倒计时,并在关机前10秒弹出警告,避免误操作导致数据丢失。

1、新建.ahk文件,粘贴以下代码:
#NoTrayIcon
Menu, Tray, NoStandard
Menu, Tray, Add, 设置倒计时..., SetTime
Menu, Tray, Add, 取消关机, CancelShutdown
Menu, Tray, Add
Menu, Tray, Add, 退出, ExitScript
Menu, Tray, Default, 设置倒计时...
Menu, Tray, Click, 1
return

SetTime:
InputBox, Minutes, 自动关机定时器, 请输入关机倒计时(分钟):, , 300, 150
if ErrorLevel
  return
if (Minutes = "") or (Minutes 1440) {
  MsgBox, 无效输入,请输入1–1440之间的整数
  return
}
total_seconds := Minutes * 60
SetTimer, CountdownWithAlert, 1000
TrayTip, 关机定时器已启动, 还剩 %Minutes% 分钟, 10, 1
return

CountdownWithAlert:
total_seconds--
if (total_seconds == 10) {
  TrayTip, 即将关机!, 10秒后执行关机,请保存工作, 10, 2
}
if (total_seconds   Run, shutdown.exe /s /f /t 0
  ExitApp
}
return

CancelShutdown:
SetTimer, CountdownWithAlert, Off
total_seconds := ""
TrayTip
MsgBox, 48, 已取消, 自动关机已中止
return

ExitScript:
ExitApp

2、运行后任务栏出现托盘图标,右键可设置、取消或退出。
3、倒计时至最后10秒时触发系统托盘提醒和弹窗警告,确保用户知情。

四、基于系统绝对时间的定时关机脚本

该方法不依赖相对倒计时,而是设定具体日期与时间点执行关机,适用于每日固定时刻关机场景,如夜间23:59自动关闭电脑。

1、新建.ahk文件,写入:
FormatTime, now, , HH:mm:ss
InputBox, target_time, 绝对时间关机, 请输入关机时间(24小时制,格式HH:mm):, , 300, 150
if ErrorLevel
  return
StringSplit, t, target_time, `:
if (t0 != 2) or !(t1 is integer) or !(t2 is integer) or (t1 > 23) or (t2 > 59) {
  MsgBox, 时间格式错误,请输入如 23:59
  return
}
target_ticks := t1 * 3600 + t2 * 60
now_ticks := SubStr(now,1,2)*3600 + SubStr(now,4,2)*60 + SubStr(now,7,2)
if (target_ticks   target_ticks += 86400
delay_seconds := target_ticks - now_ticks
SetTimer, DoShutdown, % delay_seconds * 1000
MsgBox, 已设定于 %target_time% 关机,等待 %delay_seconds% 秒
return

DoShutdown:
Run, shutdown.exe /s /f /t 0
ExitApp

2、首次运行时输入目标时间,例如23:59,脚本自动计算距当前时刻的秒数并等待执行。
3、若设定时间已过当日,脚本默认顺延至次日同一时刻。

终于介绍完啦!小伙伴们,这篇关于《AutoHotkey定时关机脚本教程》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>