让指定的软件在合适的时间自动启动。
BootRunner 是一个 Windows 小工具,适合需要让远程控制、监控、同步或其他常用软件随电脑启动的人。你只需要选择软件、设置允许启动的时间段,BootRunner 就会在工作日按规则检查并启动它们。
它特别适合远程维护电脑:电脑开机后可以先启动软件的后台服务;用户登录后,再启动带托盘图标的桌面界面。
- 让软件在 Windows 启动时自动运行。
- 限制软件只在指定时间段启动,例如每天
08:00–18:30。 - 只在工作日启动,并识别节假日和调休工作日。
- 电脑没有网络时,按你的设置决定是否继续启动。
- 让支持 Windows 服务的软件在用户登录前就开始工作。
- 用户登录后在正常桌面中启动软件,避免托盘图标消失。
- 防止同一个软件被重复启动。
- 打开本项目的 Releases 页面。
- 下载最新版本中的
BootRunner.exe。 - 把它放到一个不会被随意删除的位置,例如
C:\Tools\BootRunner\。 - 双击运行。
BootRunner 不需要单独安装 Python。配置文件、日志和节假日数据会保存在 BootRunner.exe 所在的文件夹中。
如果你想直接运行源码,需要 Windows、Python 3.10 或更高版本,并安装 Tkinter(Windows 官方 Python 安装包通常已包含):
python auto_boot.py第一次使用时:
- 点击“添加程序”,选择需要自动启动的
.exe文件。 - 在软件列表中选中远程软件,并填写它对应的 Windows 服务名称。这个名称必须以目标软件注册的实际服务名为准,不是程序文件名,也不是显示名称。
- 设置“开始时间”和“结束时间”。例如设置为
08:00和18:30,表示只在这个时间段内启动。 - 如果只想在工作日启动,勾选“仅工作日和调休工作日启动”。
- 如果希望电脑开机后、用户登录前就开始提供服务,勾选“登录前启动服务,登录后显示软件托盘图标”。
- 点击“保存设置”。
第一次启用或关闭“登录前启动服务”时,Windows 会弹出管理员授权提示。这是因为 BootRunner 需要修改 Windows 的开机启动任务。
可以点击“立即测试(不等待)”检查当前设置。测试也会遵守时间和工作日规则。
BootRunner 只会在开始时间和结束时间之间启动软件,两个时间点都包含在内。
例如:
08:00–18:30:早上 8 点到下午 6 点半之间启动。22:00–06:00:支持跨午夜时间段,晚上 10 点到第二天早上 6 点之间启动。
时间窗口检查适用于系统启动和用户登录后的检查。也就是说,用户在结束时间之后登录,软件不会因为登录动作而绕过时间限制。
勾选“仅工作日和调休工作日启动”后:
- 普通工作日:启动。
- 调休工作日:启动。
- 周六、周日和法定节假日:不启动。
BootRunner 会优先使用本地保存的年度节假日数据;首次使用或数据尚未缓存时,才会访问在线数据源。
“接口不可用时,普通周一至周五仍启动”开启后,如果节假日服务暂时无法访问,普通周一至周五仍会启动;周六、周日仍不会启动。
如果关闭这个选项,节假日服务不可用时将不启动软件。
勾选这个选项后,BootRunner 会在两个时机检查:
- Windows 启动时:在用户登录前运行一次。这个阶段只启动配置中明确指定的后台服务。普通桌面程序在此时无法可靠显示窗口。
- 用户登录时:在当前用户的桌面中再次检查,并启动软件的 GUI 和托盘图标。这个检查同样遵守时间和工作日规则。
登录前只会启动每个程序配置中明确填写的服务名,BootRunner 不会根据程序路径或文件名猜测服务。服务启动后还会查询其状态,只有确认进入 RUNNING 才记录为成功。
如果目标软件没有 Windows 服务,或没有填写正确的服务名,用户登录前不会显示它的窗口;登录后仍可以按规则启动桌面程序。想让远程软件在登录前可用,请先在软件自己的设置中开启“无人值守访问”或“随系统启动服务”,再把该服务的实际名称填入 BootRunner。
先打开 BootRunner 所在文件夹中的 boot-runner.log,然后检查:
- 当前时间是否在开始时间和结束时间之间;
- 今天是否是工作日或调休工作日;
- 节假日服务是否不可用;
- 目标
.exe文件是否仍然存在; - 目标软件是否已经在运行。
用户登录后的检查也会遵守时间窗口。例如设置为 08:00–18:30 时,晚上登录不会启动软件。请查看日志中是否出现“当前时间不在启动窗口”。
这是 Windows 的正常限制。登录前的程序运行在隔离的系统会话中,普通桌面窗口不会出现在之后登录的用户桌面上。请使用目标软件的 Windows 服务或等待用户登录后启动桌面界面。
BootRunner 会检查目标进程是否已经运行,通常会跳过重复启动。如果软件仍然出现多个实例,请确认是否同时启用了 BootRunner 和软件自身的开机启动。
它们都在 BootRunner 所在文件夹:
config.json:你的程序列表和启动规则。boot-runner.log:每次检查和启动结果。holidays\:年度节假日数据缓存。
config.json 中的程序配置格式如下;旧版本只有字符串路径的配置会自动迁移为空服务名,登录前不会猜测服务:
{
"programs": [
{
"path": "C:\\Program Files\\GameViewer\\GameViewer.exe",
"service_name": "GameViewerService"
}
]
}运行测试:
python -m unittest -v生成无需 Python 环境的单文件 Windows 程序:
python -m pip install pyinstaller
python build_exe.py生成的文件位于 dist\BootRunner.exe。
本仓库当前未声明许可证。使用或分发前,请先与项目维护者确认许可范围。