github.com/TaceyWong/ctools@v0.1.1-0.20201221084458-4d7a8190b2ac/pkg/open/exec_windows.go (about)

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