45 lines
893 B
Go
45 lines
893 B
Go
//go:build windows
|
|
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
)
|
|
|
|
func registerProtocol() {
|
|
executable, err := os.Executable()
|
|
if err != nil {
|
|
return
|
|
}
|
|
executable, err = filepath.Abs(executable)
|
|
if err != nil {
|
|
return
|
|
}
|
|
command := `"` + executable + `" "%1"`
|
|
|
|
runHiddenCommand(
|
|
"reg", "add", `HKCU\Software\Classes\dcauth`,
|
|
"/ve", "/d", "URL:DCAuth Protocol", "/f",
|
|
)
|
|
runHiddenCommand(
|
|
"reg", "add", `HKCU\Software\Classes\dcauth`,
|
|
"/v", "URL Protocol", "/d", "", "/f",
|
|
)
|
|
runHiddenCommand(
|
|
"reg", "add", `HKCU\Software\Classes\dcauth\DefaultIcon`,
|
|
"/ve", "/d", executable+",0", "/f",
|
|
)
|
|
runHiddenCommand(
|
|
"reg", "add", `HKCU\Software\Classes\dcauth\shell\open\command`,
|
|
"/ve", "/d", command, "/f",
|
|
)
|
|
}
|
|
|
|
func runHiddenCommand(name string, args ...string) {
|
|
command := exec.Command(name, args...)
|
|
hideCommandWindow(command)
|
|
_ = command.Run()
|
|
}
|