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