Как из Go приложения можно запустить внешнюю консольную программу в отдельной видимой консоли(окне)?

Среда исполнения: windows. По умолчанию Go запускает все внешние процессы в фононом режиме, либо (как в примере ниже) используется консоль самого родительского Go процесса, что меня не устраивает.


import (
    "os/exec"
    "os"
    "fmt"
)


func main() {

    cmdToRun := "c:/windows/system32/cmd.exe"
    args := []string{`start "title"`, "cmd /k",  "curl.exe"}
    procAttr := new(os.ProcAttr)
    procAttr.Files = []*os.File{os.Stdin, os.Stdout, os.Stderr}
    if process, err := os.StartProcess(cmdToRun, args, procAttr); err != nil {
        fmt.Printf("ERROR Unable to run %s: %s\n", cmdToRun, err.Error())
    } else {
        fmt.Printf("%s running as pid %d\n", cmdToRun, process.Pid)
    }
}

Ответы (0 шт):