1// +build windows 2 3package open 4 5import ( 6 "os" 7 "os/exec" 8 "path/filepath" 9 "strings" 10 // "syscall" 11) 12 13var ( 14 cmd = "url.dll,FileProtocolHandler" 15 runDll32 = filepath.Join(os.Getenv("SYSTEMROOT"), "System32", "rundll32.exe") 16) 17 18func cleaninput(input string) string { 19 r := strings.NewReplacer("&", "^&") 20 return r.Replace(input) 21} 22 23func open(input string) *exec.Cmd { 24 cmd := exec.Command(runDll32, cmd, input) 25 //cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} 26 return cmd 27} 28 29func openWith(input string, appName string) *exec.Cmd { 30 cmd := exec.Command("cmd", "/C", "start", "", appName, cleaninput(input)) 31 //cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} 32 return cmd 33} 34