56 lines
1.0 KiB
Go
56 lines
1.0 KiB
Go
|
//go:build windows
|
||
|
|
||
|
// isWin.go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
|
||
|
"golang.org/x/sys/windows/registry"
|
||
|
)
|
||
|
|
||
|
func regedit() {
|
||
|
fmt.Println("当前操作系统是 Windows")
|
||
|
|
||
|
// 程序启动参数
|
||
|
runArry := " -d -f"
|
||
|
|
||
|
// 获取当前可执行文件的路径
|
||
|
exePath, err := os.Executable()
|
||
|
if err != nil {
|
||
|
fmt.Println("无法获取可执行文件路径:", err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// 将可执行文件路径添加到注册表中
|
||
|
key, _, err := registry.CreateKey(
|
||
|
registry.CURRENT_USER,
|
||
|
`SOFTWARE\Microsoft\Windows\CurrentVersion\Run`,
|
||
|
registry.ALL_ACCESS,
|
||
|
)
|
||
|
if err != nil {
|
||
|
fmt.Println("无法打开注册表键:", err)
|
||
|
return
|
||
|
}
|
||
|
defer key.Close()
|
||
|
|
||
|
_, _, err = key.GetStringValue(filepath.Base(exePath))
|
||
|
if err != nil {
|
||
|
err = key.SetStringValue(
|
||
|
filepath.Base(exePath),
|
||
|
exePath+runArry,
|
||
|
)
|
||
|
if err != nil {
|
||
|
fmt.Println("无法设置键值:", err)
|
||
|
return
|
||
|
}
|
||
|
fmt.Printf("%s 已被添加到开机自启动项中!\n", filepath.Base(exePath))
|
||
|
|
||
|
} else {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
}
|