//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() }