首页 新闻 会员 周边

go开发win程序开机管理员权限自启

0
悬赏园豆:100 [待解决问题]

最近在用go写个程序,编译成exe可执行文件,想知道下怎么可以随着windows开机自启动,可以用什么依赖包配合windows实现吗?

rmty的主页 rmty | 初学一级 | 园豆:102
提问于:2024-04-23 19:02
< >
分享
所有回答(5)
0

https://tongyi.aliyun.com/qianwen
到这里去问AI:
go写注册表,开机启动

www378660084 | 园豆:319 (菜鸟二级) | 2024-04-23 19:40
0

在Windows上实现开机自启动可以通过注册表项来实现。你可以使用 Go 的 os/exec 包来执行命令行指令,然后添加注册表项。以下是一个简单的示例代码,演示了如何在 Windows 上实现开机自启动:

go
Copy code
package main

import (
"fmt"
"os"
"os/exec"
"runtime"
"strings"
)

func main() {
if runtime.GOOS != "windows" {
fmt.Println("该程序仅支持在Windows上运行")
return
}

// 获取程序的绝对路径
exePath, err := os.Executable()
if err != nil {
    fmt.Println("获取可执行文件路径失败:", err)
    return
}

// 构建注册表项路径
keyPath := `SOFTWARE\Microsoft\Windows\CurrentVersion\Run`
appName := "MyApp" // 修改为你的应用程序名称
regPath := fmt.Sprintf(`HKCU\%s`, keyPath)

// 添加注册表项
command := exec.Command("reg", "add", regPath, "/v", appName, "/t", "REG_SZ", "/d", exePath, "/f")
output, err := command.CombinedOutput()
if err != nil {
    fmt.Println("添加注册表项失败:", err)
    fmt.Println("错误信息:", string(output))
    return
}

fmt.Println("已成功添加注册表项,程序将在Windows开机时自动启动")

}
在上面的代码中,我们首先检查了运行的操作系统是否为 Windows。然后获取程序的绝对路径,并构建了注册表项路径。接着,我们使用 os/exec 包执行 reg add 命令来向注册表中添加启动项。最后,我们输出相应的结果。

记得将 appName 修改为你的应用程序的名称,这个名称将会显示在注册表中。

请确保以管理员权限运行该程序,因为修改注册表需要管理员权限。你可以通过将程序编译为管理员权限运行或手动以管理员权限运行来实现。

Technologyforgood | 园豆:5686 (大侠五级) | 2024-04-23 22:16
0

最简单的方案,Windows系统有个定时任务(Task Scheduler),设置一个就好

talentzemin | 园豆:759 (小虾三级) | 2024-04-24 08:25
0

在 Windows 系统中,可以使用 sc 命令将 1.exe 做成一个服务。以下是执行该操作的步骤:

打开 Command Prompt。

运行以下命令:

sc create 服务名称 binpath= "C:\路径\到\1.exe"
w0rd | 园豆:457 (菜鸟二级) | 2024-04-24 11:34
0

你右键生成一个快捷图标,然后win+r 输入shell:strtup,会弹出一个文件夹,你把快捷方式拖入就可以了

echo_lovely | 园豆:1437 (小虾三级) | 2024-04-24 14:31

startup
写错了嘿嘿

支持(0) 反对(0) echo_lovely | 园豆:1437 (小虾三级) | 2024-04-24 14:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册