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}