Launcher 启动时会自动将自己添加到 Windows 注册表,设置开机自启动。用户无需手动配置,Launcher 会在系统启动时自动运行。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- 项名:
EVS Launcher - 项值:launcher.exe 的完整路径
-
Launcher 启动
- 用户运行 launcher.exe
-
自动注册
trayOnReady()函数在托盘初始化时调用registry.SetAutoStart("EVS Launcher")- 自动将 launcher.exe 路径写入注册表
-
开机自启动
- 系统启动时,Windows 会自动读取 Run 键下的所有项
- 自动启动 launcher.exe
提供三个函数:
设置应用开机自启动
// 示例
if err := registry.SetAutoStart("EVS Launcher"); err != nil {
log.Printf("设置开机自启动失败: %v", err)
}移除应用开机自启动
// 示例
if err := registry.RemoveAutoStart("EVS Launcher"); err != nil {
log.Printf("移除开机自启动失败: %v", err)
}检查应用是否已设置开机自启动
// 示例
enabled, err := registry.IsAutoStartEnabled("EVS Launcher")
if enabled {
log.Println("已设置开机自启动")
}在 trayOnReady() 函数中自动调用:
// 设置开机自启动
if err := registry.SetAutoStart("EVS Launcher"); err != nil {
fmt.Printf("[trayOnReady] 设置开机自启动失败: %v\n", err)
logger.WithOperation("launcher", "autostart").Warn("设置开机自启动失败", "error", err)
} else {
fmt.Println("[trayOnReady] 开机自启动已设置")
logger.WithOperation("launcher", "autostart").Info("开机自启动已设置")
}- 无需管理员权限
- 使用
HKEY_CURRENT_USER而不是HKEY_LOCAL_MACHINE - 每个用户独立设置自启动
所有操作都会记录到日志:
- 成功设置:
INFO级别 - 设置失败:
WARN级别 - 操作标记:
launcher:autostart
-
验证注册表项
regedit HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run查看是否存在
EVS Launcher项 -
验证自启动
- 重启系统
- 检查 launcher 是否自动启动
-
检查日志
- 查看 launcher 日志文件
- 搜索
autostart关键字
-
路径更新
- 如果 launcher.exe 路径改变,需要重新运行 launcher 来更新注册表
-
卸载清理
- 卸载应用时,应该调用
RemoveAutoStart()清理注册表
- 卸载应用时,应该调用
-
多用户环境
- 每个用户需要独立设置自启动
- 注册表项存储在用户配置文件中
internal/registry/autostart.go- 自启动功能实现cmd/launcher/main.go- launcher 集成internal/registry/- 注册表操作模块