diff --git a/open/exec_windows.go b/open/exec_windows.go index ac44cfa..c3ef088 100644 --- a/open/exec_windows.go +++ b/open/exec_windows.go @@ -3,17 +3,24 @@ package open import ( + "os" "os/exec" + "path/filepath" "strings" ) +var ( + cmd = "url.dll,FileProtocolHandler" + runDll32 = filepath.Join(os.Getenv("SYSTEMROOT"), "System32", "rundll32.exe") +) + func cleaninput(input string) string { r := strings.NewReplacer("&", "^&") return r.Replace(input) } func open(input string) *exec.Cmd { - return exec.Command("cmd", "/C", "start", "", cleaninput(input)) + return exec.Command(runDll32, cmd, input) } func openWith(input string, appName string) *exec.Cmd {