开机启动-自启

方法一:使用启动文件夹(Startup Folder)

这是你提到的方式,操作简单直观。

1. 打开启动文件夹

你有两种方式可以快速打开这个目录:

方式 A:直接粘贴路径 打开资源管理器,在地址栏直接粘贴:

  1. C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

然后回车。

方式 B:使用“运行”对话框(推荐,不用记路径) 按下 Win + R,输入:

  1. shell:startup

开机启动:C:\Users\lison\AppDa - 图1

回车,系统会自动打开当前用户的启动文件夹(其实就是你上面那个路径)。

2. 放入你的程序

建议不要直接把 xxx.exe 文件复制进去,而是创建一个快捷方式:

  1. 找到你的 xxx.exe,右键点击它,选择“创建快捷方式”。
  2. 把这个快捷方式剪切/复制到刚才打开的 Startup 文件夹里。

3. 如果需要带命令行参数(比如指定 -filepath)

右键点击 Startup 文件夹里的快捷方式 → “属性”:

  • 目标:在原来路径后面加上参数,例如:

    1. "D:\xxx.exe" -filepath "C:\Program Files (x86)\xxx\att2000.mdb"

    (注意:如果路径有空格,需要用英文双引号包裹 exe 路径)

  • 起始位置:填写 D:\(这样程序运行时的当前目录就是这里,方便读取同目录下的配置文件)。

4. 验证

重启电脑,然后打开任务管理器(Ctrl+Shift+Esc),在“详细信息”里看是否有 xxx.exe 在运行。


方法二:使用注册表(更专业,适合无感部署)

如果你不想在启动文件夹里放快捷方式,或者希望程序自己注册开机启动,可以通过 Windows 注册表来实现。

手动添加注册表项

  1. 按下 Win + R,输入 regedit 打开注册表编辑器。
  2. 导航到路径:
    1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    (这个路径只对当前用户生效,不需要管理员权限;如果想对所有用户生效,用 HKEY_LOCAL_MACHINE 下的同名路径,但需要管理员权限)
  3. 在右侧空白处右键 → 新建 → 字符串值,名字随便起(比如 KaoqinService)。
  4. 双击它,在“数值数据”里填入:
    1. "D:\xxx.exe" -filepath "C:\Program Files (x86)\xxx\att2000.mdb"
  5. 确定,重启电脑即可。

用命令行一键添加(适合写批处理脚本)

以管理员身份打开 CMD,执行:

  1. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "KaoqinService" /t REG_SZ /d "\"D:\xxx.exe\" -filepath \"C:\Program Files (x86)\xxx\att2000.mdb\"" /f

(注:引号嵌套比较多,注意转义)


补充:让程序自己注册开机启动(Go 代码实现)

如果你想做一个安装脚本,让程序第一次运行时自动把自己加入开机启动,可以用 Go 代码写注册表(需要引入 golang.org/x/sys/windows/registry 包):

  1. import (
  2. "golang.org/x/sys/windows/registry"
  3. "path/filepath"
  4. "os"
  5. )
  6. func setAutoStart() error {
  7. exePath, _ := os.Executable()
  8. key, err := registry.OpenKey(registry.CURRENT_USER,
  9. `Software\Microsoft\Windows\CurrentVersion\Run`, registry.ALL_ACCESS)
  10. if err != nil {
  11. return err
  12. }
  13. defer key.Close()
  14. // 把 exe 路径写入注册表,可以拼接参数
  15. return key.SetStringValue("KaoqinService", "\""+exePath+"\"")
  16. }

这样你只需要运行一次 xxx.exe -install 就能完成开机自启配置。


⚠️ 注意事项(重要)

  1. 无窗口程序:因为你用了 -H=windowsgui 编译,开机后程序会在后台静默运行,桌面上不会有任何窗口。
  2. 如何关闭:需要按之前说的方式,用 taskkill /f /im xxx.exe 或者访问 /shutdown 接口来关闭。
  3. 日志排查:开机自启后如果出问题,你看不到控制台输出。强烈建议按之前说的把日志写到文件里(比如写到 D:\xxx\xxx.log),方便排查启动失败的原因。
  4. 防火墙:如果是第一次运行,Windows 防火墙可能会弹窗询问是否允许网络访问。建议提前手动运行一次程序并勾选“允许”,这样开机自启时才不会卡在防火墙提示上。

需要我帮你把“日志写文件”和“注册表自注册”功能整合到你的 main.go 里吗?